Messages in this thread | | | Date | Mon, 25 Jul 2005 10:28:21 +0200 | From | Loïc MARTIN <> | Subject | int pci_register_driver(&pci_driver) and void driver_attach(struct device_driver * drv) |
| |
kernel: 2.6.11.10
Currently writting down a pci driver, I notice that "pci_register_driver(&pci_driver)" don't forward my "probe" function errors. Actually errors are noticed in the kernel ring buffer but don't make pci_register_driver fail. It returns a zero value in any case. I traced back to the kernel in order to try to understand this problem and find the "void driver_attach(struct device_driver * drv)" function in the "linux-2.6.11.10/drivers/base/bus.c" file which, obviously, can not returns an error.
So I just wish to know why this function only print this message :
/* driver matched but the probe failed */ printk(KERN_WARNING "%s: probe of %s failed with error %d\n", drv->name, dev->bus_id, error);
but don't return the error. Actually I don't understand why the module is loaded (because pci_register_driver, which is called during __init, don't fail) while my pci card could not have been initialized by "probe" function because it failed for such reasons.
Thanks
-- Loïc Martin - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |