diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2017-07-12 22:58:56 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-07-12 23:35:43 +0200 |
commit | 57fe14790b88122fb34b68308b9aa9a643457ea7 (patch) | |
tree | 98d843989a9d6787772deb76a38f079dae5a58a8 | |
parent | brcmfmac: fix possible buffer overflow in brcmf_cfg80211_mgmt_tx() (diff) | |
download | linux-57fe14790b88122fb34b68308b9aa9a643457ea7.tar.xz linux-57fe14790b88122fb34b68308b9aa9a643457ea7.zip |
smsc911x: Add check for ioremap_nocache() return code
There is no check for return code of smsc911x_drv_probe()
in smsc911x_drv_probe(). The patch adds one.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/smsc/smsc911x.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c index ea1bbc355b4d..0b6a39b003a4 100644 --- a/drivers/net/ethernet/smsc/smsc911x.c +++ b/drivers/net/ethernet/smsc/smsc911x.c @@ -2467,6 +2467,10 @@ static int smsc911x_drv_probe(struct platform_device *pdev) pdata = netdev_priv(dev); dev->irq = irq; pdata->ioaddr = ioremap_nocache(res->start, res_size); + if (!pdata->ioaddr) { + retval = -ENOMEM; + goto out_ioremap_fail; + } pdata->dev = dev; pdata->msg_enable = ((1 << debug) - 1); @@ -2572,6 +2576,7 @@ out_enable_resources_fail: smsc911x_free_resources(pdev); out_request_resources_fail: iounmap(pdata->ioaddr); +out_ioremap_fail: free_netdev(dev); out_release_io_1: release_mem_region(res->start, resource_size(res)); |