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

From: Al Viro
Date: Sun Oct 23 2005 - 16:46:48 EST


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?
-
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/