Hi,
Should driver_attach( ) return an error value?
I have disabled a device in the system bios, The
driver fails to report -ENODEV.
This is for 2.6.11.1 kernel
When I dig through the PCI subsystem and driver_attach
code, I find that :
pci_register_driver is returing zero(no error) even
when the device is not present in the system.
But when I check driver_attach( ), I get -ENODEV for
driver_probe_device(). which is correct. But
driver_attach( ) does not return this error value.
driver attach( ) is called in bus_add_driver( ) and
bus_add_driver just returns error=0
Hence I get error=0 in pci_register_driver.
Am I missing something in the flow?
int pci_register_driver( )
{
.....
.....
error = driver_register(&drv->driver);
return error;
}
int driver_register(struct device_driver * drv)
{
.....
return bus_add_driver(drv);
}
int bus_add_driver(struct device_driver * drv)
{
.....
driver_attach(drv);
...
return error;
}
void driver_attach(struct device_driver * drv)
{
....
error = driver_probe_device(drv, dev);
....
}
with regards,
Anil
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]