Re: [PATCH v2 8/9] amba: Export amba_bustype

From: Alex Williamson
Date: Mon Jun 19 2017 - 13:53:37 EST


On Mon, 19 Jun 2017 18:31:10 +0100
Russell King - ARM Linux <linux@xxxxxxxxxxxxxxx> 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.williamson@xxxxxxxxxx>
> > Reported-by: Eric Auger <eric.auger@xxxxxxxxxx>
> > Cc: Russell King <linux@xxxxxxxxxxxxxxx>
> > ---
> > 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)
> > {
> >
>