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.

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.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.


Reply via email to