wifi: ray_cs: add sanity check on local->sram/rmem/amem
authorDongliang Mu <dzm91@hust.edu.cn>
Thu, 16 Mar 2023 13:32:36 +0000 (21:32 +0800)
committerKalle Valo <kvalo@kernel.org>
Sat, 27 May 2023 08:30:31 +0000 (11:30 +0300)
The ray_config uses ray_release as its unified error handling function.
However, it does not know if local->sram/rmem/amem succeeds or not.

Fix this by adding sanity check on local->sram/rmem/amem in the
ray_relase.

Signed-off-by: Dongliang Mu <dzm91@hust.edu.cn>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230316133236.556198-3-dzm91@hust.edu.cn
drivers/net/wireless/legacy/ray_cs.c

index 93eaf3dba6a93f99b55156ab6f3f25dffa7cca18..4b53a9c70e7e7f392a32f885ff5c09d39ada9cff 100644 (file)
@@ -738,9 +738,12 @@ static void ray_release(struct pcmcia_device *link)
 
        del_timer_sync(&local->timer);
 
-       iounmap(local->sram);
-       iounmap(local->rmem);
-       iounmap(local->amem);
+       if (local->sram)
+               iounmap(local->sram);
+       if (local->rmem)
+               iounmap(local->rmem);
+       if (local->amem)
+               iounmap(local->amem);
        pcmcia_disable_device(link);
 
        dev_dbg(&link->dev, "ray_release ending\n");