Re: [PATCH 0/3] driver core: generalize driver_override infrastructure
Gui-Dong Han <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel,gmane.linux.kernel.hwmon,gmane.linux.ports.arm.msm,gmane.linux.sound |
|---|---|
| Message-ID | <CALbr=LYMgWXcj0QkQYv-68gX2mkzyKrE2BJFeXbnoVXKW=F85g@mail.gmail.com> |
On Mon, Mar 2, 2026 at 6:12 PM Danilo Krummrich <[email protected]> wrote: > > On Mon Mar 2, 2026 at 10:41 AM CET, Gui-Dong Han wrote: > >> Danilo Krummrich (3): > >> driver core: generalize driver_override in struct device > >> hwmon: axi-fan: don't use driver_override as IRQ name > >> driver core: platform: use generic driver_override infrastructure > > > > Hi Danilo, > > > > It looks like some usages of platform_device->driver_override were > > missed. I found them here: > > - drivers/bus/simple-pm-bus.c > > - drivers/clk/imx/clk-scu.c > > - drivers/slimbus/qcom-ngd-ctrl.c > > - sound/soc/samsung/i2s.c > > They should all be covered by patch 3, no? My apologies, I got a bit confused here. > > > The good news is these can be easily updated to use the new APIs. This > > is required to avoid breaking the build, since the field is removed > > from struct platform_device. The previous build likely passed because > > these weren't enabled. I will use allyesconfig for testing going > > forward. > > > > I scanned for similar cases and most fit the new APIs perfectly. One > > exception is drivers/xen/xen-pciback/pci_stub.c. It does > > strcmp(dev->driver_override, PCISTUB_DRIVER_NAME) instead of using > > drv->name. We might want to change device_match_driver_override() to > > take a const char * instead to handle this. > > xen_pcibk_pci_driver should use the exact same define, so we can just convert > this to: > > diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c > index e4b27aecbf0591..301207b4a30dac 100644 > --- a/drivers/xen/xen-pciback/pci_stub.c > +++ b/drivers/xen/xen-pciback/pci_stub.c > @@ -609,9 +609,9 @@ static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id) > > match = pcistub_match(dev); > > - if ((dev->driver_override && > - !strcmp(dev->driver_override, PCISTUB_DRIVER_NAME)) || > - match) { > + if (device_match_driver_override(&dev->dev, > + &xen_pcibk_pci_driver.driver) > 0 || > + match) { > > if (dev->hdr_type != PCI_HEADER_TYPE_NORMAL > && dev->hdr_type != PCI_HEADER_TYPE_BRIDGE) { > > I.e. no separate API needed. Thanks for the explanation, you are absolutely right. > > > Besides axi-fan, I didn't find any other drivers that need to read > > driver_override. This is great, as it means we hopefully won't need to > > expose a read API at all. > > Great, thanks for checking.