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
This commit is contained in:
parent
99d653892b
commit
25d4944e06
@ -455,8 +455,13 @@ pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, uint64_t hostbase,
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user