From 8ee5479a28df0a3f3019419e46e9ee5c119a27bd Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 19 Feb 2016 09:18:43 +0100 Subject: [PATCH] driver: Fix return check of dev_request_mem_region dev_request_mem_region returns an ERR_PTR, fix places which check for a NULL pointer instead. This patch has been generated with this semantic patch, written by me and improved by Andrey Smirnov: // @@ expression e; expression e1; @@ e = dev_request_mem_region(...); ... -if (!e) - return e1; +if (IS_ERR(e)) + return PTR_ERR(e); @ rule1 @ expression e; @@ e = dev_request_mem_region(...); @@ expression rule1.e; identifier ret, label; constant errno; @@ if (!e) { ... ( - ret = -errno; + ret = PTR_ERR(e); ... goto label; | - return -errno; + return PTR_ERR(e); ) } @depends on rule1@ expression rule1.e; @@ - if (e == NULL) + if (IS_ERR(e)) { ... } // Signed-off-by: Sascha Hauer Signed-off-by: Andrey Smirnov --- drivers/clk/mvebu/common.c | 4 ++-- drivers/firmware/socfpga.c | 8 ++++---- drivers/gpio/gpio-orion.c | 4 ++-- drivers/i2c/busses/i2c-at91.c | 4 ++-- drivers/i2c/busses/i2c-tegra.c | 4 ++-- drivers/mtd/devices/mtdram.c | 4 ++-- drivers/mtd/nand/atmel_nand.c | 10 +++++----- drivers/mtd/nand/nand_imx.c | 4 ++-- drivers/net/dm9k.c | 8 ++++---- drivers/pinctrl/mvebu/armada-370.c | 4 ++-- drivers/pinctrl/mvebu/dove.c | 6 ++++-- drivers/rtc/rtc-jz4740.c | 4 ++-- drivers/usb/gadget/pxa27x_udc.c | 4 ++-- drivers/usb/imx/imx-usb-misc.c | 4 ++-- drivers/usb/imx/imx-usb-phy.c | 4 ++-- drivers/usb/musb/phy-am335x.c | 4 ++-- drivers/video/imx-ipu-v3/imx-hdmi.c | 4 ++-- drivers/video/imx-ipu-v3/ipu-common.c | 4 ++-- drivers/watchdog/imxwd.c | 4 ++-- drivers/watchdog/jz4740.c | 4 ++-- 20 files changed, 49 insertions(+), 47 deletions(-) diff --git a/drivers/clk/mvebu/common.c b/drivers/clk/mvebu/common.c index c4774979b..1eded9037 100644 --- a/drivers/clk/mvebu/common.c +++ b/drivers/clk/mvebu/common.c @@ -58,8 +58,8 @@ int mvebu_coreclk_probe(struct device_d *dev) /* Get SAR base address */ base = dev_request_mem_region(dev, 0); - if (!base) - return -EINVAL; + if (IS_ERR(base)) + return PTR_ERR(base); /* Allocate struct for TCLK, cpu clk, and core ratio clocks */ clk_data.clk_num = 2 + desc->num_ratios; diff --git a/drivers/firmware/socfpga.c b/drivers/firmware/socfpga.c index 159644bbf..79c63eb77 100644 --- a/drivers/firmware/socfpga.c +++ b/drivers/firmware/socfpga.c @@ -408,14 +408,14 @@ static int fpgamgr_probe(struct device_d *dev) fh = &mgr->fh; mgr->regs = dev_request_mem_region(dev, 0); - if (!mgr->regs) { - ret = -EBUSY; + if (IS_ERR(mgr->regs)) { + ret = PTR_ERR(mgr->regs); goto out; } mgr->regs_data = dev_request_mem_region(dev, 1); - if (!mgr->regs_data) { - ret = -EBUSY; + if (IS_ERR(mgr->regs_data)) { + ret = PTR_ERR(mgr->regs_data); goto out; } diff --git a/drivers/gpio/gpio-orion.c b/drivers/gpio/gpio-orion.c index 3deeac126..5348395d5 100644 --- a/drivers/gpio/gpio-orion.c +++ b/drivers/gpio/gpio-orion.c @@ -97,9 +97,9 @@ static int orion_gpio_probe(struct device_d *dev) gpio = xzalloc(sizeof(*gpio)); gpio->regs = dev_request_mem_region(dev, 0); - if (!gpio->regs) { + if (IS_ERR(gpio->regs)) { free(gpio); - return -EINVAL; + return PTR_ERR(gpio->regs); } gpio->chip.dev = dev; gpio->chip.ops = &orion_gpio_ops; diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c index 622c56d97..6db724334 100644 --- a/drivers/i2c/busses/i2c-at91.c +++ b/drivers/i2c/busses/i2c-at91.c @@ -426,9 +426,9 @@ static int at91_twi_probe(struct device_d *dev) i2c_at91->pdata = i2c_data; i2c_at91->base = dev_request_mem_region(dev, 0); - if (!i2c_at91->base) { + if (IS_ERR(i2c_at91->base)) { dev_err(dev, "could not get memory region\n"); - rc = -ENODEV; + rc = PTR_ERR(i2c_at91->base); goto out_free; } diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index f6a4b227f..a6c6596f6 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -611,9 +611,9 @@ static int tegra_i2c_probe(struct device_d *dev) int ret = 0; base = dev_request_mem_region(dev, 0); - if (!base) { + if (IS_ERR(base)) { dev_err(dev, "could not get iomem region\n"); - return -ENODEV; + return PTR_ERR(base); } div_clk = clk_get(dev, "div-clk"); diff --git a/drivers/mtd/devices/mtdram.c b/drivers/mtd/devices/mtdram.c index d1eaafdab..fbcccd039 100644 --- a/drivers/mtd/devices/mtdram.c +++ b/drivers/mtd/devices/mtdram.c @@ -71,8 +71,8 @@ static int mtdram_probe(struct device_d *dev) } base = dev_request_mem_region(dev, 0); - if (!base) { - ret = -EBUSY; + if (IS_ERR(base)) { + ret = PTR_ERR(base); goto nobase; } diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c index 4ddabda57..48d1783a9 100644 --- a/drivers/mtd/nand/atmel_nand.c +++ b/drivers/mtd/nand/atmel_nand.c @@ -873,20 +873,20 @@ static int __init atmel_pmecc_nand_init_params(struct device_d *dev, cap, sector_size); host->ecc = dev_request_mem_region(dev, 1); - if (host->ecc == NULL) { + if (IS_ERR(host->ecc)) { dev_err(host->dev, "ioremap failed\n"); return -EIO; } host->pmerrloc_base = dev_request_mem_region(dev, 2); - if (!host->pmerrloc_base) { + if (IS_ERR(host->pmerrloc_base)) { dev_err(host->dev, "Can not get I/O resource for PMECC ERRLOC controller!\n"); - return -EIO; + return PTR_ERR(host->pmerrloc_base); } host->pmecc_rom_base = dev_request_mem_region(dev, 3); - if (!host->pmecc_rom_base) { + if (IS_ERR(host->pmecc_rom_base)) { /* Set pmecc_rom_base as the begin of gf table */ int size = sector_size == 512 ? 0x2000 : 0x4000; pmecc_galois_table = xzalloc(2 * size * sizeof(uint16_t)); @@ -1249,7 +1249,7 @@ static int atmel_hw_nand_init_params(struct device_d *dev, struct nand_chip *nand_chip = &host->nand_chip; host->ecc = dev_request_mem_region(dev, 1); - if (host->ecc == NULL) { + if (IS_ERR(host->ecc)) { dev_err(host->dev, "ioremap failed\n"); return -EIO; } diff --git a/drivers/mtd/nand/nand_imx.c b/drivers/mtd/nand/nand_imx.c index 00c05d00a..6cabae06a 100644 --- a/drivers/mtd/nand/nand_imx.c +++ b/drivers/mtd/nand/nand_imx.c @@ -1168,9 +1168,9 @@ static int __init imxnd_probe(struct device_d *dev) host->base = dev_request_mem_region(dev, 1); host->main_area0 = host->base; - if (!host->regs_ip) { + if (IS_ERR(host->regs_ip)) { dev_err(dev, "no second mem region\n"); - err = -ENODEV; + err = PTR_ERR(host->regs_ip); goto escan; } diff --git a/drivers/net/dm9k.c b/drivers/net/dm9k.c index 1f1938d97..d813c8c27 100644 --- a/drivers/net/dm9k.c +++ b/drivers/net/dm9k.c @@ -809,14 +809,14 @@ static int dm9k_probe(struct device_d *dev) goto err; priv->iodata = dev_request_mem_region(dev, 1); - if (!priv->iodata) { - ret = -EBUSY; + if (IS_ERR(priv->iodata)) { + ret = PTR_ERR(priv->iodata); goto err; } priv->iobase = dev_request_mem_region(dev, 0); - if (!priv->iobase) { - ret = -EBUSY; + if (IS_ERR(priv->iobase)) { + ret = PTR_ERR(priv->iobase); goto err; } diff --git a/drivers/pinctrl/mvebu/armada-370.c b/drivers/pinctrl/mvebu/armada-370.c index b7901f8c6..7ad8d0430 100644 --- a/drivers/pinctrl/mvebu/armada-370.c +++ b/drivers/pinctrl/mvebu/armada-370.c @@ -397,8 +397,8 @@ static int armada_370_pinctrl_probe(struct device_d *dev) (struct mvebu_pinctrl_soc_info *)match->data; mpp_base = dev_request_mem_region(dev, 0); - if (!mpp_base) - return -EBUSY; + if (IS_ERR(mpp_base)) + return PTR_ERR(mpp_base); return mvebu_pinctrl_probe(dev, soc); } diff --git a/drivers/pinctrl/mvebu/dove.c b/drivers/pinctrl/mvebu/dove.c index d1848a79d..6e0ce84d7 100644 --- a/drivers/pinctrl/mvebu/dove.c +++ b/drivers/pinctrl/mvebu/dove.c @@ -707,9 +707,11 @@ static int dove_pinctrl_probe(struct device_d *dev) clk_enable(clk); mpp_base = dev_request_mem_region(dev, 0); + if (IS_ERR(mpp_base)) + return PTR_ERR(mpp_base); mpp4_base = dev_request_mem_region(dev, 1); - if (!mpp_base || !mpp4_base) - return -EBUSY; + if (IS_ERR(mpp4_base)) + return PTR_ERR(mpp4_base); /* * Dove PMU does not have a stable binding, yet. diff --git a/drivers/rtc/rtc-jz4740.c b/drivers/rtc/rtc-jz4740.c index 8194050e7..762f35624 100644 --- a/drivers/rtc/rtc-jz4740.c +++ b/drivers/rtc/rtc-jz4740.c @@ -119,9 +119,9 @@ static int jz4740_rtc_probe(struct device_d *dev) void __iomem *base; base = dev_request_mem_region(dev, 0); - if (!base) { + if (IS_ERR(base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(base); } rtc = xzalloc(sizeof(*rtc)); diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c index 3db3480ca..831fbde46 100644 --- a/drivers/usb/gadget/pxa27x_udc.c +++ b/drivers/usb/gadget/pxa27x_udc.c @@ -1453,8 +1453,8 @@ static int __init pxa_udc_probe(struct device_d *dev) int gpio, ret; udc->regs = dev_request_mem_region(dev, 0); - if (!udc->regs) - return -ENXIO; + if (IS_ERR(udc->regs)) + return PTR_ERR(udc->regs); udc->dev = dev; udc->mach = dev->platform_data; diff --git a/drivers/usb/imx/imx-usb-misc.c b/drivers/usb/imx/imx-usb-misc.c index af1a32110..576dc9a2f 100644 --- a/drivers/usb/imx/imx-usb-misc.c +++ b/drivers/usb/imx/imx-usb-misc.c @@ -553,8 +553,8 @@ static int imx_usbmisc_probe(struct device_d *dev) return ret; usbmisc_base = dev_request_mem_region(dev, 0); - if (!usbmisc_base) - return -ENOMEM; + if (IS_ERR(usbmisc_base)) + return PTR_ERR(usbmisc_base); imxusbmisc_data = devtype; diff --git a/drivers/usb/imx/imx-usb-phy.c b/drivers/usb/imx/imx-usb-phy.c index 837c1b517..8ea08144d 100644 --- a/drivers/usb/imx/imx-usb-phy.c +++ b/drivers/usb/imx/imx-usb-phy.c @@ -71,8 +71,8 @@ static int imx_usbphy_probe(struct device_d *dev) imxphy = xzalloc(sizeof(*imxphy)); imxphy->base = dev_request_mem_region(dev, 0); - if (!imxphy->base) { - ret = -ENODEV; + if (IS_ERR(imxphy->base)) { + ret = PTR_ERR(imxphy->base); goto err_free; } diff --git a/drivers/usb/musb/phy-am335x.c b/drivers/usb/musb/phy-am335x.c index 2d58bbedb..0a0b01dd2 100644 --- a/drivers/usb/musb/phy-am335x.c +++ b/drivers/usb/musb/phy-am335x.c @@ -37,8 +37,8 @@ static int am335x_phy_probe(struct device_d *dev) return -ENOMEM; am_usbphy->base = dev_request_mem_region(dev, 0); - if (!am_usbphy->base) { - ret = -ENODEV; + if (IS_ERR(am_usbphy->base)) { + ret = PTR_ERR(am_usbphy->base); goto err_free; } diff --git a/drivers/video/imx-ipu-v3/imx-hdmi.c b/drivers/video/imx-ipu-v3/imx-hdmi.c index 25fcb0c73..49cbca16e 100644 --- a/drivers/video/imx-ipu-v3/imx-hdmi.c +++ b/drivers/video/imx-ipu-v3/imx-hdmi.c @@ -1294,8 +1294,8 @@ static int dw_hdmi_probe(struct device_d *dev) hdmi->ddc_node = of_parse_phandle(np, "ddc-i2c-bus", 0); hdmi->regs = dev_request_mem_region(dev, 0); - if (!hdmi->regs) - return -EBUSY; + if (IS_ERR(hdmi->regs)) + return PTR_ERR(hdmi->regs); hdmi->isfr_clk = clk_get(hdmi->dev, "isfr"); if (IS_ERR(hdmi->isfr_clk)) { diff --git a/drivers/video/imx-ipu-v3/ipu-common.c b/drivers/video/imx-ipu-v3/ipu-common.c index 70bb0e59b..398eefbd5 100644 --- a/drivers/video/imx-ipu-v3/ipu-common.c +++ b/drivers/video/imx-ipu-v3/ipu-common.c @@ -761,8 +761,8 @@ static int ipu_probe(struct device_d *dev) return ret; ipu_base = dev_request_mem_region(dev, 0); - if (!ipu_base) - return -EBUSY; + if (IS_ERR(ipu_base)) + return PTR_ERR(ipu_base); ipu = xzalloc(sizeof(*ipu)); diff --git a/drivers/watchdog/imxwd.c b/drivers/watchdog/imxwd.c index 1952548fa..14588947f 100644 --- a/drivers/watchdog/imxwd.c +++ b/drivers/watchdog/imxwd.c @@ -183,9 +183,9 @@ static int imx_wd_probe(struct device_d *dev) priv = xzalloc(sizeof(struct imx_wd)); priv->base = dev_request_mem_region(dev, 0); - if (!priv->base) { + if (IS_ERR(priv->base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(priv->base); } priv->ops = ops; priv->wd.set_timeout = imx_watchdog_set_timeout; diff --git a/drivers/watchdog/jz4740.c b/drivers/watchdog/jz4740.c index 3d45b46ee..85a1c1d1e 100644 --- a/drivers/watchdog/jz4740.c +++ b/drivers/watchdog/jz4740.c @@ -71,9 +71,9 @@ static int jz4740_wdt_probe(struct device_d *dev) priv = xzalloc(sizeof(struct jz4740_wdt_drvdata)); priv->base = dev_request_mem_region(dev, 0); - if (!priv->base) { + if (IS_ERR(priv->base)) { dev_err(dev, "could not get memory region\n"); - return -ENODEV; + return PTR_ERR(priv->base); } dev->priv = priv;