9
0
Fork 0

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:

// <smpl>
@@
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))
{
...
}
// </smpl>

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
This commit is contained in:
Sascha Hauer 2016-02-19 09:18:43 +01:00
parent f1f8f5556a
commit 8ee5479a28
20 changed files with 49 additions and 47 deletions

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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");

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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.

View File

@ -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));

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)) {

View File

@ -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));

View File

@ -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;

View File

@ -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;