OSDN Git Service

fpga: zynqmp-fpga: Correctly handle error pointer
authorMoritz Fischer <mdf@kernel.org>
Thu, 30 May 2019 14:52:59 +0000 (09:52 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2019 14:56:11 +0000 (07:56 -0700)
Fixes the following static checker errors:

drivers/fpga/zynqmp-fpga.c:50 zynqmp_fpga_ops_write()
error: 'eemi_ops' dereferencing possible ERR_PTR()

drivers/fpga/zynqmp-fpga.c:84 zynqmp_fpga_ops_state()
error: 'eemi_ops' dereferencing possible ERR_PTR()

Note: This does not handle the EPROBE_DEFER value in a
      special manner.

Fixes commit c09f7471127e ("fpga manager: Adding FPGA Manager support for
Xilinx zynqmp")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Moritz Fischer <mdf@kernel.org>
Acked-by: Alan Tull <atull@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/fpga/zynqmp-fpga.c

index f7cbaad..b8a88d2 100644 (file)
@@ -47,7 +47,7 @@ static int zynqmp_fpga_ops_write(struct fpga_manager *mgr,
        char *kbuf;
        int ret;
 
-       if (!eemi_ops || !eemi_ops->fpga_load)
+       if (IS_ERR_OR_NULL(eemi_ops) || !eemi_ops->fpga_load)
                return -ENXIO;
 
        priv = mgr->priv;
@@ -81,7 +81,7 @@ static enum fpga_mgr_states zynqmp_fpga_ops_state(struct fpga_manager *mgr)
        const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops();
        u32 status;
 
-       if (!eemi_ops || !eemi_ops->fpga_get_status)
+       if (IS_ERR_OR_NULL(eemi_ops) || !eemi_ops->fpga_get_status)
                return FPGA_MGR_STATE_UNKNOWN;
 
        eemi_ops->fpga_get_status(&status);