svn commit: r239086 - projects/bhyve/usr.sbin/bhyve

Neel Natu neel at FreeBSD.org
Mon Aug 6 07:20:26 UTC 2012


Author: neel
Date: Mon Aug  6 07:20:25 2012
New Revision: 239086
URL: http://svn.freebsd.org/changeset/base/239086

Log:
  Fix a bug in how a 64-bit bar in a pci passthru device would be presented to
  the guest. Prior to the fix it was possible for such a bar to appear as a
  32-bit bar as long as it was allocated from the region below 4GB.
  
  This had the potential to confuse some drivers that were particular about
  the size of the bars.
  
  Obtained from:	NetApp

Modified:
  projects/bhyve/usr.sbin/bhyve/pci_emul.c

Modified: projects/bhyve/usr.sbin/bhyve/pci_emul.c
==============================================================================
--- projects/bhyve/usr.sbin/bhyve/pci_emul.c	Mon Aug  6 06:51:27 2012	(r239085)
+++ projects/bhyve/usr.sbin/bhyve/pci_emul.c	Mon Aug  6 07:20:25 2012	(r239086)
@@ -455,8 +455,13 @@ pci_emul_alloc_bar(struct pci_devinst *p
 			lobits = PCIM_BAR_MEM_SPACE | PCIM_BAR_MEM_64 |
 				 PCIM_BAR_MEM_PREFETCH;
 			break;
+		} else {
+			baseptr = &pci_emul_membase32;
+			limit = PCI_EMUL_MEMLIMIT32;
+			mask = PCIM_BAR_MEM_BASE;
+			lobits = PCIM_BAR_MEM_SPACE | PCIM_BAR_MEM_64;
 		}
-		/* fallthrough */
+		break;
 	case PCIBAR_MEM32:
 		baseptr = &pci_emul_membase32;
 		limit = PCI_EMUL_MEMLIMIT32;


More information about the svn-src-projects mailing list