2016-11-16 22:55:07

by Luis Henriques

[permalink] [raw]
Subject: [PATCH] bus: mvebu-mbus: fix iounmap() in error path

This patch fixes the following Coccinelle error:

./drivers/bus/mvebu-mbus.c:1115:2-8: \
ERROR: missing iounmap; ioremap on line 1108 \
and execution via conditional on line 1113

Although all mvebu_mbus_common_init() callers seem to actually use
&mbus_state in the 1st argument, this is still a bug that could be
triggered by future changes.

Signed-off-by: Luis Henriques <[email protected]>
---
drivers/bus/mvebu-mbus.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
index c7f396903184..449466eff56f 100644
--- a/drivers/bus/mvebu-mbus.c
+++ b/drivers/bus/mvebu-mbus.c
@@ -1111,7 +1111,7 @@ static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus,

mbus->sdramwins_base = ioremap(sdramwins_phys_base, sdramwins_size);
if (!mbus->sdramwins_base) {
- iounmap(mbus_state.mbuswins_base);
+ iounmap(mbus->mbuswins_base);
return -ENOMEM;
}



2016-11-18 12:48:52

by Gregory CLEMENT

[permalink] [raw]
Subject: Re: [PATCH] bus: mvebu-mbus: fix iounmap() in error path

Hi Luis,

On mer., nov. 16 2016, Luis Henriques <[email protected]> wrote:

> This patch fixes the following Coccinelle error:
>
> ./drivers/bus/mvebu-mbus.c:1115:2-8: \
> ERROR: missing iounmap; ioremap on line 1108 \
> and execution via conditional on line 1113
>
> Although all mvebu_mbus_common_init() callers seem to actually use
> &mbus_state in the 1st argument, this is still a bug that could be
> triggered by future changes.
>
> Signed-off-by: Luis Henriques <[email protected]>

Acked-by: Gregory CLEMENT <[email protected]>

and applied on mvebu/dt

Thanks,

Gregory

> ---
> drivers/bus/mvebu-mbus.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
> index c7f396903184..449466eff56f 100644
> --- a/drivers/bus/mvebu-mbus.c
> +++ b/drivers/bus/mvebu-mbus.c
> @@ -1111,7 +1111,7 @@ static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus,
>
> mbus->sdramwins_base = ioremap(sdramwins_phys_base, sdramwins_size);
> if (!mbus->sdramwins_base) {
> - iounmap(mbus_state.mbuswins_base);
> + iounmap(mbus->mbuswins_base);
> return -ENOMEM;
> }
>

--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com