[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] pass-through: Fix I/O BAR mapping probblem


  • To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>
  • From: "Zhao, Yu" <yu.zhao@xxxxxxxxx>
  • Date: Wed, 6 Aug 2008 17:23:57 +0800
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 06 Aug 2008 02:24:23 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: Acj3pieC2WU0v9QdSiGqwFyRCxBZTg==
  • Thread-topic: [Xen-devel] [PATCH] pass-through: Fix I/O BAR mapping probblem

Check BAR type indicator to avoid I/O BAR being mistaken as 64-bit memory BAR.

hw/pass-through.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/hw/pass-through.c b/hw/pass-through.c
index 7b46234..6d5686f 100644
--- a/hw/pass-through.c
+++ b/hw/pass-through.c
@@ -1511,7 +1511,9 @@ static int pt_bar_reg_parse(
     /* check 64bit BAR */
     index = pt_bar_offset_to_index(reg->offset);
     if ((index > 0) && (index < PCI_ROM_SLOT) &&
-        (d->config[bar_64] & PCI_BASE_ADDRESS_MEM_TYPE_64))
+        ((d->config[bar_64] & (PCI_BASE_ADDRESS_SPACE |
+                               PCI_BASE_ADDRESS_MEM_TYPE_MASK)) ==
+         (PCI_BASE_ADDRESS_SPACE_MEMORY | PCI_BASE_ADDRESS_MEM_TYPE_64)))
     {
         region = &ptdev->bases[index-1];
         if (region->bar_flag != PT_BAR_FLAG_UPPER)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.