mirror of https://github.com/xemu-project/xemu.git
pci: teach pci_default_config_write() ROM bar for normal/bridge device .
When updated ROM expantion address of header type 0, it missed to update mappings. Add PCI_ROM_ADDRESS check whether to call pci_update_mappings() Also update pci mapping when PCI_ROM_ADDRESS1 is written for header type 1. pci_update_mapping() path isn't performance critical, so call it even independent of header type. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
260c0cd3d9
commit
edb000350d
2
hw/pci.c
2
hw/pci.c
|
@ -707,6 +707,8 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int l)
|
|||
d->config[addr] = (d->config[addr] & ~wmask) | (val & wmask);
|
||||
}
|
||||
if (ranges_overlap(addr, l, PCI_BASE_ADDRESS_0, 24) ||
|
||||
ranges_overlap(addr, l, PCI_ROM_ADDRESS, 4) ||
|
||||
ranges_overlap(addr, l, PCI_ROM_ADDRESS1, 4) ||
|
||||
range_covers_byte(addr, l, PCI_COMMAND))
|
||||
pci_update_mappings(d);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue