[PATCH v3 1/8] driver core: bus: add irq_get_affinity callback to bus_type

Greg Kroah-Hartman gregkh at linuxfoundation.org
Wed Nov 13 06:24:50 PST 2024


On Wed, Nov 13, 2024 at 02:12:30PM +0000, John Garry wrote:
> On 13/11/2024 13:54, Greg Kroah-Hartman wrote:
> > > diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> > > b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> > > index 342d75f12051..5172af77a3f0 100644
> > > --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> > > +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> > > @@ -3636,6 +3636,7 @@ static struct platform_driver hisi_sas_v2_driver = {
> > >                 .name = DRV_NAME,
> > >                 .of_match_table = sas_v2_of_match,
> > >                 .acpi_match_table = ACPI_PTR(sas_v2_acpi_match),
> > > +               .irq_get_affinity_mask = hisi_sas_v2_get_affinity_mask,
> > >         },
> > > };
> > > 
> > > 
> > > > If no one objects, I go ahead and add the callback to struct
> > > > device_driver.
> > > I'd wait for Christoph and Greg to both agree. I was just wondering why we
> > > use bus_type.
> > bus types are good to set it at a bus level so you don't have to
> > explicitly set it at each-and-every-driver.  Depends on what you want
> > this to be, if it is a "all drivers of this bus type will have the same
> > callback" then put it on the bus.  otherwise if you are going to
> > mix/match on a same bus, then put it in the driver structure.
> 
> Understood, I think all drivers on same bus will use the same callback.
> 
> FWIW, most drivers of interest are pci drivers, so I thought that it would
> simply be a change like this (for those drivers if we use struct
> device_driver):
> 
> @@ -1442,6 +1455,7 @@ int __pci_register_driver(struct pci_driver
> *drv, struct module *owner,
>        drv->driver.mod_name = mod_name;
>        drv->driver.groups = drv->groups;
>        drv->driver.dev_groups = drv->dev_groups;
> +       drv->driver.irq_get_affinity = pci_device_irq_get_affinity;

Yes, you can do that too.  But now you have a pointer-per-driver instead
of just one-per-bus.  It's not a big deal, but again if this is always
going to be the same for everything on a bus, make it a bus pointer
please.

thanks,

greg k-h



More information about the Linux-nvme mailing list