Skip to contentSkip to conversation

2.6.1-pci_register_driver() and counts

DISCUSSION Jon Smirl 1 participant 1 message Jan 10, 2004

lore
Share & tools
lore

Jon Smirl

author
#0 lore raw

Is this code in drivers/pci/pci-driver.c, pci_register_driver() correct?

/* register with core */
count = driver_register(&drv->driver);

if (count >= 0) {
       pci_populate_driver_dir(drv);
}

return count ? count : 1;

Looking at base/driver.c, driver_register() returns the output from bus_add_driver().
Looking at base/bus.c, bus_add_driver() does not return a count, it only returns error codes.

So the code in pci_register_driver() works as long as there is no error and the return from driver_register() is zero, but it isn't going to work right in the error case. Also the code is just wrong because it is expecting a count that isn't returned.

I don't know if the count is needed, but if it is, it looks like driver_attach() would need to modified to return it instead of void.

=====
Jon Smirl
[email protected]

__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus