can: peak/pci: fix potential bug when probe() fails
commit 5c2cb02edf
upstream.
PCI/PCIe drivers for PEAK-System CAN/CAN-FD interfaces do some access to the
PCI config during probing. In case one of these accesses fails, a POSITIVE
PCIBIOS_xxx error code is returned back. This POSITIVE error code MUST be
converted into a NEGATIVE errno for the probe() function to indicate it
failed. Using the pcibios_err_to_errno() function, we make sure that the
return code will always be negative.
Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ba4eed1bd4
commit
5b65e2916c
@ -825,7 +825,10 @@ err_release_regions:
|
|||||||
err_disable_pci:
|
err_disable_pci:
|
||||||
pci_disable_device(pdev);
|
pci_disable_device(pdev);
|
||||||
|
|
||||||
return err;
|
/* pci_xxx_config_word() return positive PCIBIOS_xxx error codes while
|
||||||
|
* the probe() function must return a negative errno in case of failure
|
||||||
|
* (err is unchanged if negative) */
|
||||||
|
return pcibios_err_to_errno(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free the board structure object, as well as its resources: */
|
/* free the board structure object, as well as its resources: */
|
||||||
|
@ -717,7 +717,10 @@ failure_release_regions:
|
|||||||
failure_disable_pci:
|
failure_disable_pci:
|
||||||
pci_disable_device(pdev);
|
pci_disable_device(pdev);
|
||||||
|
|
||||||
return err;
|
/* pci_xxx_config_word() return positive PCIBIOS_xxx error codes while
|
||||||
|
* the probe() function must return a negative errno in case of failure
|
||||||
|
* (err is unchanged if negative) */
|
||||||
|
return pcibios_err_to_errno(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void peak_pci_remove(struct pci_dev *pdev)
|
static void peak_pci_remove(struct pci_dev *pdev)
|
||||||
|
Reference in New Issue
Block a user