ioremap could fail and returns NULL. The fix actively checks its return value and handles potential failures. Signed-off-by: Kangjie Lu <kjlu@xxxxxxx> --- drivers/net/wireless/ray_cs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c index 44a943d18b84..cecd18a2f2de 100644 --- a/drivers/net/wireless/ray_cs.c +++ b/drivers/net/wireless/ray_cs.c @@ -394,6 +394,10 @@ static int ray_config(struct pcmcia_device *link) goto failed; local->sram = ioremap(link->resource[2]->start, resource_size(link->resource[2])); + if (!local->sram) { + ret = -ENOMEM; + goto failed; + } /*** Set up 16k window for shared memory (receive buffer) ***************/ link->resource[3]->flags |= @@ -408,6 +412,10 @@ static int ray_config(struct pcmcia_device *link) goto failed; local->rmem = ioremap(link->resource[3]->start, resource_size(link->resource[3])); + if (!local->rmem) { + ret = -ENOMEM; + goto failed; + } /*** Set up window for attribute memory ***********************************/ link->resource[4]->flags |= @@ -422,6 +430,10 @@ static int ray_config(struct pcmcia_device *link) goto failed; local->amem = ioremap(link->resource[4]->start, resource_size(link->resource[4])); + if (!local->amem) { + ret = -ENOMEM; + goto failed; + } dev_dbg(&link->dev, "ray_config sram=%p\n", local->sram); dev_dbg(&link->dev, "ray_config rmem=%p\n", local->rmem); -- 2.17.1