Re: [patch] drivers/block: updates .owner field of struct pci_driver

From: Greg KH
Date: Tue Oct 25 2005 - 15:18:57 EST


On Sun, Oct 23, 2005 at 10:46:11PM +0100, Al Viro wrote:
> On Sun, Oct 23, 2005 at 10:13:20PM +0100, Russell King wrote:
> > On Sun, Oct 23, 2005 at 10:49:48PM +0200, Laurent Riffard wrote:
> > > This patch updates .owner field of struct pci_driver.
> > >
> > > This allows SYSFS to create the symlink from the driver to the
> > > module which provides it.
> > >
> > > Signed-off-by: Laurent Riffard <laurent.riffard@xxxxxxx>
> >
> > Wouldn't it be better to eliminate pci_driver's .owner field and
> > set the generic device driver's owner field directly? (and fix
> > the PCI code not to overwrite that if pci_driver's .owner field
> > is NULL for compatibility.)
> >
> > I ask for the second time recently on linux-kernel. Is there
> > *really* any point in duplicating these fields?
>
> #define pci_register_driver(d) __pci_register_driver(d, THIS_MODULE)
>
> #define ide_pci_register_driver(d) __ide_pci_register_driver(d, THIS_MODULE)
>
> __pci_register_driver(drv, module) - same as current pci_register_driver(),
> except that instead of
> drv->driver.owner = drv->owner;
> it does
> drv->driver.owner = module;
>
> __ide_pci_register_driver(driver, module):
> {
> if(!pre_init)
> return __pci_register_driver(driver, module);
> driver->driver.owner = module;
> list_add_tail(&driver->node, &ide_pci_drivers);
> return 0;
> }
>
> and in ide_scan_pcibus() turn
> pci_register_driver(d);
> into
> __pci_register_driver(d, d->driver.owner);
>
> Update exports (i.e. export __pci_register_driver and __ide_pci_register_driver
> instead of pci_register_driver and ide_pci_register_driver resp.).
>
> At which point pci_driver->owner become unused and can be killed at leisure.
> Objections?

No objections at all, that's a great way to handle this.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/