diff mbox series

net: wireless: fix missing checks for ioremap

Message ID 20190311075440.1513-1-kjlu@umn.edu (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series net: wireless: fix missing checks for ioremap | expand

Commit Message

Kangjie Lu March 11, 2019, 7:54 a.m. UTC
ioremap could fail and returns NULL. The fix actively checks
its return value and handles potential failures.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
---
 drivers/net/wireless/ray_cs.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Kangjie Lu March 23, 2019, 3:58 a.m. UTC | #1
Can someone review the patch?

Thanks.

> On Mar 11, 2019, at 2:54 AM, Kangjie Lu <kjlu@umn.edu> wrote:
> 
> ioremap could fail and returns NULL. The fix actively checks
> its return value and handles potential failures.
> 
> Signed-off-by: Kangjie Lu <kjlu@umn.edu>
> ---
> 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
>
Kalle Valo April 26, 2019, 11:48 a.m. UTC | #2
Kangjie Lu <kjlu@umn.edu> wrote:

> ioremap could fail and returns NULL. The fix actively checks
> its return value and handles potential failures.
> 
> Signed-off-by: Kangjie Lu <kjlu@umn.edu>

The prefix should be "ray_cs: ":

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#commit_title_is_wrong

Also I don't see the point of setting the ret variable as it's ignored in the failed label:

failed:
	ray_release(link);
	return -ENODEV;

Patch set to Changes Requested.
diff mbox series

Patch

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);