Reads following writes with all address bits set to 1 should return all changeable address bits as one, not the BAR size (nor, as was the case for the upper half of 64-bit BARs, the high half of the region's end address). Presumably this didn't cause any problems so far because consumers use the value to calculate the size (usually via val & -val), and do nothing else with it. But also consider the exception here: Unimplemented BARs should always return all zeroes. And finally, the check for whether to return the sizing address on read for the ROM BAR should ignore all non-address bits, not just the ROM Enable one. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com> |
||
---|---|---|
.. | ||
Makefile | ||
conf_space.c | ||
conf_space.h | ||
conf_space_capability.c | ||
conf_space_header.c | ||
conf_space_quirks.c | ||
conf_space_quirks.h | ||
passthrough.c | ||
pci_stub.c | ||
pciback.h | ||
pciback_ops.c | ||
vpci.c | ||
xenbus.c |