At 08/19/2011 11:26 PM, Avi Kivity Write: > On 08/18/2011 10:12 PM, Wen Congyang wrote: >> >> >> >> The following patch can fix this problem, but I'm not sure whether it >> >> is right. >> > >> > It's correct but insufficient, the filtering code (pci_bridge_filter) >> > needs to be updated to use the memory API. >> >> I read the function pci_bridge_filter(), and the function only read >> PCI bridge's config space(command, base and limit). If base> limit, >> it will set addr to PCI_BAR_UNMAPPED. >> >> I do not find anything that needs to updated to use the memory API. > > Currently it doesn't do any filtering at all. Bridges need to create a > new address space, then attach aliases of this region (corresponding to > the filtered area and to the legacy vga space) to the parent bus' > address space.
Hmm, does this problem exist before memory API is introduced? > >> I add a scsi controller on pci bus1, and a scsi disk on this controller. >> I can read and write this disk, and I do not meet any problem. >> > > However, filtering doesn't work. You could put a BAR outside the > filtered area and it would be visible to the guest. How to put a BAR outside the filtered area and confirm whether it would be virible to the guest?