> From: Jason Gunthorpe <jgg@xxxxxxxx> > Sent: Monday, May 4, 2020 8:14 PM > > On Sun, May 03, 2020 at 05:25:28PM -0700, Dey, Megha wrote: > > > > The use case if when we have a device assigned to a guest and we > > > > want to allocate IMS(platform-msi) interrupts for that > > > > guest-assigned device. Currently, this is abstracted through a mdev > > > > interface. > > > > > > And the mdev has the pci_device internally, so it should simply pass > > > that pci_device to the platform_msi machinery. > > > > hmm i am not sure I follow this. mdev has a pci_device internally? which > > struct are you referring to here? > > mdev in general may not, but any ADI trying to use mdev will > necessarily have access to a struct pci_device. Agree here. Mdev is just driver internal concept. It doesn't make sense to expose it in driver/base, just like how we avoided exposing mdev in iommu layer. Megha, every mdev/ADI has a parent device, which is the struct pci_device that Jason refers to. In irq domain level, it only needs to care about the PCI device and related IMS management. It doesn't matter whether the allocated IMS entry is used for a mdev or by parent driver itself. Thanks Kevin