In case ioremap fails, the fix returns to avoid NULL pointer
dereferences.

Signed-off-by: Kangjie Lu <k...@umn.edu>
---
 drivers/net/ethernet/8390/pcnet_cs.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/ethernet/8390/pcnet_cs.c 
b/drivers/net/ethernet/8390/pcnet_cs.c
index 61e43802b9a5..d82ecedf7366 100644
--- a/drivers/net/ethernet/8390/pcnet_cs.c
+++ b/drivers/net/ethernet/8390/pcnet_cs.c
@@ -289,6 +289,9 @@ static struct hw_info *get_hwinfo(struct pcmcia_device 
*link)
 
     virt = ioremap(link->resource[2]->start,
            resource_size(link->resource[2]));
+               if (unlikely(!virt))
+                       return NULL;
+
     for (i = 0; i < NR_INFO; i++) {
        pcmcia_map_mem_page(link, link->resource[2],
                hw_info[i].offset & ~(resource_size(link->resource[2])-1));
@@ -1423,6 +1426,11 @@ static int setup_shmem_window(struct pcmcia_device 
*link, int start_pg,
     /* Try scribbling on the buffer */
     info->base = ioremap(link->resource[3]->start,
                        resource_size(link->resource[3]));
+               if (unlikely(!info->base)) {
+                       ret = -ENOMEM;
+                       goto failed;
+               }
+
     for (i = 0; i < (TX_PAGES<<8); i += 2)
        __raw_writew((i>>1), info->base+offset+i);
     udelay(100);
-- 
2.17.1

Reply via email to