Re: [PATCH] PCI: Fix to avoid potential NULL pointer dereference

2019-03-18 Thread Jisheng Zhang
On Mon, 18 Mar 2019 19:26:30 -0500 Aditya Pakki wrote:

> 
> In gen_pci_probe, of_match_node can return a NULL pointer in case of

This could not happen. If the probe is called, it means OF registered a
device with a valid compatible string, so of_match_node cannot be NULL.

> failure. The patch avoids a NULL pointer dereference in such a scenario.
> 
> Signed-off-by: Aditya Pakki 
> ---
>  drivers/pci/controller/pci-host-generic.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/pci/controller/pci-host-generic.c 
> b/drivers/pci/controller/pci-host-generic.c
> index dea3ec7592a2..85f473f50e96 100644
> --- a/drivers/pci/controller/pci-host-generic.c
> +++ b/drivers/pci/controller/pci-host-generic.c
> @@ -83,6 +83,8 @@ static int gen_pci_probe(struct platform_device *pdev)
> struct pci_ecam_ops *ops;
> 
> of_id = of_match_node(gen_pci_of_match, pdev->dev.of_node);
> +   if (!of_id)
> +   return -ENXIO;
> ops = (struct pci_ecam_ops *)of_id->data;
> 
> return pci_host_common_probe(pdev, ops);
> --
> 2.17.1
> 
> 
> ___
> linux-arm-kernel mailing list
> linux-arm-ker...@lists.infradead.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.infradead.org_mailman_listinfo_linux-2Darm-2Dkernel=DwICAg=7dfBJ8cXbWjhc0BhImu8wQ=wlaKTGoVCDxOzHc2QUzpzGEf9oY3eidXlAe3OF1omvo=Aaw3ijENR3L1GJbf1JjDlPa-S8-6UwqqXN40ECdoisk=ByG7jEMATcZVHKP-JW7j4efNcV-iAfJDFTEzC8Ba7oc=



[PATCH] PCI: Fix to avoid potential NULL pointer dereference

2019-03-18 Thread Aditya Pakki
In gen_pci_probe, of_match_node can return a NULL pointer in case of
failure. The patch avoids a NULL pointer dereference in such a scenario.

Signed-off-by: Aditya Pakki 
---
 drivers/pci/controller/pci-host-generic.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/pci/controller/pci-host-generic.c 
b/drivers/pci/controller/pci-host-generic.c
index dea3ec7592a2..85f473f50e96 100644
--- a/drivers/pci/controller/pci-host-generic.c
+++ b/drivers/pci/controller/pci-host-generic.c
@@ -83,6 +83,8 @@ static int gen_pci_probe(struct platform_device *pdev)
struct pci_ecam_ops *ops;
 
of_id = of_match_node(gen_pci_of_match, pdev->dev.of_node);
+   if (!of_id)
+   return -ENXIO;
ops = (struct pci_ecam_ops *)of_id->data;
 
return pci_host_common_probe(pdev, ops);
-- 
2.17.1