Skip to contentSkip to conversation

forwarded errors

KJ Loïc Martin 2 participants 2 messages Jul 26, 2005 Kernel janitors

lore
Share & tools
lore
#0 lore raw

kernel: 2.6.11.10

Hello

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

Signature · 9 lines
Loïc 
-------------------
hardware, n:
      The parts of a computer system that can be kicked.

_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors
#1 lore raw
Quoted 7 lines · Lo?c Martin

kernel: 2.6.11.10

Hello

Currently writting down a pci driver, I notice that "pci_register_driver(&pci_driver)" don't forward my "probe" function errors.

Because you could have 0 devices at that time. And devices could be added to system after pci_register_driver is called (think hotplug).

driver != device

Quoted 14 lines

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);
Quoted 18 lines

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

Signature · 9 lines
Lo?c 
-------------------
hardware, n:
      The parts of a computer system that can be kicked.

_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors

_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors