On Mon, 19 Jun 2017 18:31:10 +0100 Russell King - ARM Linux <li...@armlinux.org.uk> wrote:
> This patch on its own doesn't make much sense to me... any chance of > seeing the full series please? Hi Russell, Please find it here: https://lkml.org/lkml/2017/6/19/808 Patches 7 and 9: https://lkml.org/lkml/2017/6/19/813 https://lkml.org/lkml/2017/6/19/812 Are particularly relevant. The gist of it is that we want to get to the driver_override field of the device in order to force a no-match for a driver bind when we're in a situation where binding to a host driver could compromise the system integrity (user owned devices and host owned devices in the same iommu group). driver_override is handled in a common way, but is not part of struct device, it's part of the containing structure, so we identify the bustype and therefore device container to get to the override. The bustype is typically exported and some bus drivers like PCI even offer convenient helpers like dev_is_pci() to facilitate this sort of matching. Thanks, Alex > On Mon, Jun 19, 2017 at 11:15:29AM -0600, Alex Williamson wrote: > > This allows modules to match struct device.bus to amba_bustype for the > > purpose of casting the device to an amba_device with to_amba_device(). > > > > Signed-off-by: Alex Williamson <alex.william...@redhat.com> > > Reported-by: Eric Auger <eric.au...@redhat.com> > > Cc: Russell King <li...@armlinux.org.uk> > > --- > > drivers/amba/bus.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c > > index a56fa2a1e9aa..4e118cd3ddf3 100644 > > --- a/drivers/amba/bus.c > > +++ b/drivers/amba/bus.c > > @@ -197,6 +197,7 @@ struct bus_type amba_bustype = { > > .uevent = amba_uevent, > > .pm = &amba_pm, > > }; > > +EXPORT_SYMBOL_GPL(amba_bustype); > > > > static int __init amba_init(void) > > { > > >