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