diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-07-31 10:38:08 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-09-16 08:32:10 +0200 |
commit | ed6e965824303255cacc1c1a195d3684caa26bce (patch) | |
tree | 26e2b1b78498675ceae4dd2e990836c26ec1d5ec /drivers/net | |
parent | 5bdc82c54a3306f2ae151a00f2df54f9240395b8 (diff) | |
download | barebox-ed6e965824303255cacc1c1a195d3684caa26bce.tar.gz barebox-ed6e965824303255cacc1c1a195d3684caa26bce.tar.xz |
resource: Let dev_request_mem_region return an error pointer
For all users fix or add the error check.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/altera_tse.c | 9 | ||||
-rw-r--r-- | drivers/net/ar231x.c | 9 | ||||
-rw-r--r-- | drivers/net/arc_emac.c | 3 | ||||
-rw-r--r-- | drivers/net/cpsw.c | 3 | ||||
-rw-r--r-- | drivers/net/designware.c | 4 | ||||
-rw-r--r-- | drivers/net/ethoc.c | 3 | ||||
-rw-r--r-- | drivers/net/fec_mpc5200.c | 3 | ||||
-rw-r--r-- | drivers/net/ks8851_mll.c | 6 | ||||
-rw-r--r-- | drivers/net/macb.c | 2 | ||||
-rw-r--r-- | drivers/net/smc91111.c | 3 |
10 files changed, 41 insertions, 4 deletions
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c index 4bbf59558c..ecbb9f8974 100644 --- a/drivers/net/altera_tse.c +++ b/drivers/net/altera_tse.c @@ -26,6 +26,7 @@ #include <clock.h> #include <linux/mii.h> #include <linux/phy.h> +#include <linux/err.h> #include <io.h> #include <asm/dma-mapping.h> @@ -515,6 +516,8 @@ static int tse_probe(struct device_d *dev) #ifdef CONFIG_TSE_USE_DEDICATED_DESC_MEM tx_desc = dev_request_mem_region(dev, 3); + if (IS_ERR(tx_desc)) + return PTR_ERR(tx_desc); rx_desc = tx_desc + 2; #else tx_desc = dma_alloc_coherent(sizeof(*tx_desc) * (3 + PKTBUFSRX), (unsigned long *)&dma_handle); @@ -531,8 +534,14 @@ static int tse_probe(struct device_d *dev) memset(tx_desc, 0, (sizeof *tx_desc) * 2); priv->tse_regs = dev_request_mem_region(dev, 0); + if (IS_ERR(priv->tse_regs)) + return PTR_ERR(priv->tse_regs); priv->sgdma_rx_regs = dev_request_mem_region(dev, 1); + if (IS_ERR(priv->sgdma_rx_regs)) + return PTR_ERR(priv->sgdma_rx_regs); priv->sgdma_tx_regs = dev_request_mem_region(dev, 2); + if (IS_ERR(priv->sgdma_tx_regs)) + return PTR_ERR(priv->sgdma_tx_regs); priv->rx_desc = rx_desc; priv->tx_desc = tx_desc; diff --git a/drivers/net/ar231x.c b/drivers/net/ar231x.c index 572008a831..48e4b30fd6 100644 --- a/drivers/net/ar231x.c +++ b/drivers/net/ar231x.c @@ -26,6 +26,7 @@ #include <net.h> #include <init.h> #include <io.h> +#include <linux/err.h> #include "ar231x.h" @@ -384,18 +385,18 @@ static int ar231x_eth_probe(struct device_d *dev) priv->reset_bit = pdata->reset_bit; priv->eth_regs = dev_request_mem_region(dev, 0); - if (priv->eth_regs == NULL) { + if (IS_ERR(priv->eth_regs)) { dev_err(dev, "No eth_regs!!\n"); - return -ENODEV; + return PTR_ERR(priv->eth_regs); } /* we have 0x100000 for eth, part of it are dma regs. * So they are already requested */ priv->dma_regs = (void *)(priv->eth_regs + 0x1000); priv->phy_regs = dev_request_mem_region(dev, 1); - if (priv->phy_regs == NULL) { + if (IS_ERR(priv->phy_regs)) { dev_err(dev, "No phy_regs!!\n"); - return -ENODEV; + return PTR_ERR(priv->phy_regs); } priv->cfg = pdata; diff --git a/drivers/net/arc_emac.c b/drivers/net/arc_emac.c index 8b74ea5704..17705067bc 100644 --- a/drivers/net/arc_emac.c +++ b/drivers/net/arc_emac.c @@ -22,6 +22,7 @@ #include <net.h> #include <io.h> #include <init.h> +#include <linux/err.h> /* ARC EMAC register set combines entries for MAC and MDIO */ enum { @@ -400,6 +401,8 @@ static int arc_emac_probe(struct device_d *dev) priv = edev->priv; priv->regs = dev_request_mem_region(dev, 0); + if (IS_ERR(priv->regs)) + return PTR_ERR(priv->regs); priv->bus = miibus; id = arc_reg_get(priv, R_ID); diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index ccae5376c3..167b2ddf8b 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -34,6 +34,7 @@ #include <xfuncs.h> #include <asm/mmu.h> #include <asm/system.h> +#include <linux/err.h> #include <mach/cpsw.h> @@ -1109,6 +1110,8 @@ int cpsw_probe(struct device_d *dev) dev_dbg(dev, "* %s\n", __func__); regs = dev_request_mem_region(dev, 0); + if (IS_ERR(regs)) + return PTR_ERR(regs); priv = xzalloc(sizeof(*priv)); priv->dev = dev; diff --git a/drivers/net/designware.c b/drivers/net/designware.c index e87bdff5fb..49ed0b1922 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -29,6 +29,7 @@ #include <asm/mmu.h> #include <net/designware.h> #include <linux/phy.h> +#include <linux/err.h> #include "designware.h" struct dw_eth_dev { @@ -440,6 +441,9 @@ static int dwc_ether_probe(struct device_d *dev) } base = dev_request_mem_region(dev, 0); + if (IS_ERR(base)) + return PTR_ERR(base); + priv->mac_regs_p = base; dwc_version(dev, readl(&priv->mac_regs_p->version)); priv->dma_regs_p = base + DW_DMA_BASE_OFFSET; diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index 679e1e552a..59e8f01e0b 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c @@ -17,6 +17,7 @@ #include <init.h> #include <io.h> #include <asm/cache.h> +#include <linux/err.h> /* register offsets */ #define MODER 0x00 @@ -542,6 +543,8 @@ static int ethoc_probe(struct device_d *dev) priv = edev->priv; priv->iobase = dev_request_mem_region(dev, 0); + if (IS_ERR(priv->iobase)) + return PTR_ERR(priv->iobase); priv->miibus.read = ethoc_mdio_read; priv->miibus.write = ethoc_mdio_write; diff --git a/drivers/net/fec_mpc5200.c b/drivers/net/fec_mpc5200.c index 41a3b58d53..f431d79d1d 100644 --- a/drivers/net/fec_mpc5200.c +++ b/drivers/net/fec_mpc5200.c @@ -16,6 +16,7 @@ #include <mach/sdma.h> #include <mach/clocks.h> #include <linux/phy.h> +#include <linux/err.h> #include "fec_mpc5200.h" #define CONFIG_PHY_ADDR 1 /* FIXME */ @@ -655,6 +656,8 @@ int mpc5xxx_fec_probe(struct device_d *dev) edev->parent = dev; fec->eth = dev_request_mem_region(dev, 0); + if (IS_ERR(fec->eth)) + return PTR_ERR(fec->eth); fec->tbdBase = (FEC_TBD *)FEC_BD_BASE; fec->rbdBase = (FEC_RBD *)(FEC_BD_BASE + FEC_TBD_NUM * sizeof(FEC_TBD)); diff --git a/drivers/net/ks8851_mll.c b/drivers/net/ks8851_mll.c index 83d1b02803..a8974cfcb9 100644 --- a/drivers/net/ks8851_mll.c +++ b/drivers/net/ks8851_mll.c @@ -29,6 +29,7 @@ #include <clock.h> #include <io.h> #include <linux/phy.h> +#include <linux/err.h> #define MAX_RECV_FRAMES 32 #define MAX_BUF_SIZE 2048 @@ -823,7 +824,12 @@ static int ks8851_probe(struct device_d *dev) } ks->hw_addr = dev_request_mem_region(dev, 0); + if (IS_ERR(ks->hw_addr)) + return PTR_ERR(ks->hw_addr); + ks->hw_addr_cmd = dev_request_mem_region(dev, 1); + if (IS_ERR(ks->hw_addr_cmd)) + return PTR_ERR(ks->hw_addr_cmd); ks->bus_width = dev->resource[0].flags & IORESOURCE_MEM_TYPE_MASK; edev->init = ks8851_init_dev; diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 12a2a3c6c5..03558af8f1 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -642,6 +642,8 @@ static int macb_probe(struct device_d *dev) macb->phy_flags = pdata->phy_flags; macb->regs = dev_request_mem_region(dev, 0); + if (IS_ERR(macb->regs)) + return PTR_ERR(macb->regs); /* * Do some basic initialization so that we at least can talk diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c index 7baa7490f7..55d93676b2 100644 --- a/drivers/net/smc91111.c +++ b/drivers/net/smc91111.c @@ -66,6 +66,7 @@ #include <clock.h> #include <io.h> #include <linux/phy.h> +#include <linux/err.h> #include <net/smc91111.h> /*--------------------------------------------------------------- @@ -1330,6 +1331,8 @@ static int smc91c111_probe(struct device_d *dev) priv->miibus.priv = priv; priv->miibus.parent = dev; priv->base = dev_request_mem_region(dev, 0); + if (IS_ERR(priv->base)) + return PTR_ERR(priv->base); smc91c111_reset(edev); |