Messages in this thread |  | | Date | Fri, 1 Nov 2013 06:31:10 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] cciss: return 0 from driver probe function on success, not 1 |
| |
On Fri, 01 Nov 2013 14:06:45 +0100 Tomas Henzl <thenzl@redhat.com> wrote:
> The problem in kernel is that the error handling in local_pci_probe > and in __pci_device_probe is different for ret values > 0, > so we should fix it somewhere so it is in sync. > The documentation states that the probe function should return zero on success > so what about this - > > This would bring the handling to sync > diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c > index 98f7b9b..200a071 100644 > --- a/drivers/pci/pci-driver.c > +++ b/drivers/pci/pci-driver.c > @@ -317,8 +317,6 @@ __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev) > id = pci_match_device(drv, pci_dev); > if (id) > error = pci_call_probe(drv, pci_dev, id); > - if (error >= 0) > - error = 0; > } > return error; > }
ah, there it is.
This change would turn semi-kaput drivers into kaput-kaput drivers. It would be better to add a runtime warning here so those drivers get fixed. Such a warning would need to reliably identify the offending probe function so a simple WARN_ON() wouldn't be sufficient.
|  |