From patchwork Tue Dec 22 11:10:46 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 69255 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.2) with ESMTP id nBMBDcTw029722 for ; Tue, 22 Dec 2009 11:13:38 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752423AbZLVLNh (ORCPT ); Tue, 22 Dec 2009 06:13:37 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752391AbZLVLNg (ORCPT ); Tue, 22 Dec 2009 06:13:36 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48851 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752044AbZLVLNg (ORCPT ); Tue, 22 Dec 2009 06:13:36 -0500 Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nBMBDVmL006653 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 22 Dec 2009 06:13:32 -0500 Received: from redhat.com (vpn-6-200.tlv.redhat.com [10.35.6.200]) by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with SMTP id nBMBDTCf027552; Tue, 22 Dec 2009 06:13:30 -0500 Date: Tue, 22 Dec 2009 13:10:46 +0200 From: "Michael S. Tsirkin" To: avi@redhat.com, agraf@suse.de, kvm@vger.kernel.org Subject: [PATCH] slow_map: minor improvements to ROM BAR handling Message-ID: <20091222111044.GA16000@redhat.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org diff --git a/hw/device-assignment.c b/hw/device-assignment.c index 000fa61..066fdb6 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -486,25 +486,23 @@ static int assigned_dev_register_regions(PCIRegion *io_regions, : PCI_BASE_ADDRESS_SPACE_MEMORY; if (cur_region->size & 0xFFF) { - fprintf(stderr, "PCI region %d at address 0x%llx " - "has size 0x%x, which is not a multiple of 4K. " - "You might experience some performance hit due to that.\n", - i, (unsigned long long)cur_region->base_addr, - cur_region->size); + if (i != PCI_ROM_SLOT) { + fprintf(stderr, "PCI region %d at address 0x%llx " + "has size 0x%x, which is not a multiple of 4K. " + "You might experience some performance hit " + "due to that.\n", + i, (unsigned long long)cur_region->base_addr, + cur_region->size); + } slow_map = 1; } - if (slow_map && (i == PCI_ROM_SLOT)) { - fprintf(stderr, "ROM not aligned - can't continue\n"); - return -1; - } - /* map physical memory */ pci_dev->v_addrs[i].e_physbase = cur_region->base_addr; if (i == PCI_ROM_SLOT) { pci_dev->v_addrs[i].u.r_virtbase = mmap(NULL, - (cur_region->size + 0xFFF) & 0xFFFFF000, + cur_region->size, PROT_WRITE | PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, 0, (off_t) 0);