On Mon, 2013-09-09 at 14:02 +0100, Peter Maydell wrote: > On 9 September 2013 13:59, Michael S. Tsirkin <m...@redhat.com> wrote: > > On Mon, Sep 09, 2013 at 01:52:11PM +0100, Peter Maydell wrote: > >> It would be conceptually nicer not to treat host bridges as > >> a special case but instead to just report the abort back > >> to whatever the PCI master was (which might be a device > >> doing DMA). That might be a lot of effort though. > > > Yes. As a shortcut, what I suggest is registering the > > device that wants to be notified of master aborts with > > the bus. > > Can you just pick the device which is (a subclass of) > TYPE_PCI_HOST_BRIDGE, or do we have host bridges which > aren't using that class? This is what I would really want to do, but some HOST Bridge devices inherit directly from PCI_DEVICE.
TYPE_PCI_HOST_BRIDGE derives from TYPE_SYS_BUS_DEVICE which is a not a PCI device and does not help us here (not a PCI_DEVICE on the bus) Strangely TYPE_Q35_HOST_DEVICE derives from TYPE_SYS_BUS_DEVICE and it hold as composition a PCIDevice that will be part of the bus, as opposed to TYPE_I440FX_PCI_DEVICE which directly inherits from PCI_DEVICE. It seems to me as a dead end, or we need to re-factor the current hierarchy. Marcel > > -- PMM