When mmc allocation succeeds, the error paths are not freeing mmc.
Fix the above issue by changing mmc_alloc_host() to devm_mmc_alloc_host()
to simplify the error handling. Remove label 'probe_free_host' as devm_*
api takes care of freeing, also remove mmc_free_host() from remove
function as devm_* takes care of freeing.
Fixes: 4e268fed8b18 ("mmc: Add mmc driver for Sunplus SP7021")
Reported-by: Dan Carpenter <redacted>
Closes: https://lore.kernel.org/all/a3829ed3-d827-4b9d-827e-9cc24a3ec3bc@moroto.mountain/
Signed-off-by: Harshit Mogalapalli <redacted>
---
This is based on static analysis with smatch, only compile tested.
v1->v2: Simplify code by using devm_mmc_alloc_host() instead of
mmc_alloc_host() (Ulf Hansson's suggestion)
---
drivers/mmc/host/sunplus-mmc.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
The platform_get_irq() function returns negative error codes on failure.
Fixes: 4e268fed8b18 ("mmc: Add mmc driver for Sunplus SP7021")
Reported-by: Dan Carpenter <redacted>
Closes: https://lore.kernel.org/all/a3829ed3-d827-4b9d-827e-9cc24a3ec3bc@moroto.mountain/
Signed-off-by: Harshit Mogalapalli <redacted>
---
v1->v2: Split into two patches as they are doing different things.
This is based on static analysis with smatch, only compile tested.
---
drivers/mmc/host/sunplus-mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Dan Carpenter <hidden> Date: 2023-08-09 07:40:40
On Wed, Aug 09, 2023 at 12:18:11AM -0700, Harshit Mogalapalli wrote:
When mmc allocation succeeds, the error paths are not freeing mmc.
Fix the above issue by changing mmc_alloc_host() to devm_mmc_alloc_host()
to simplify the error handling. Remove label 'probe_free_host' as devm_*
api takes care of freeing, also remove mmc_free_host() from remove
function as devm_* takes care of freeing.
Fixes: 4e268fed8b18 ("mmc: Add mmc driver for Sunplus SP7021")
Reported-by: Dan Carpenter <redacted>
Closes: https://lore.kernel.org/all/a3829ed3-d827-4b9d-827e-9cc24a3ec3bc@moroto.mountain/
Signed-off-by: Harshit Mogalapalli <redacted>
---
This is based on static analysis with smatch, only compile tested.
v1->v2: Simplify code by using devm_mmc_alloc_host() instead of
mmc_alloc_host() (Ulf Hansson's suggestion)
Nice.
Both patches look good to me.
Reviewed-by: Dan Carpenter <redacted>
regards,
dan carpenter
On Wed, 9 Aug 2023 at 09:18, Harshit Mogalapalli
[off-list ref] wrote:
When mmc allocation succeeds, the error paths are not freeing mmc.
Fix the above issue by changing mmc_alloc_host() to devm_mmc_alloc_host()
to simplify the error handling. Remove label 'probe_free_host' as devm_*
api takes care of freeing, also remove mmc_free_host() from remove
function as devm_* takes care of freeing.
Fixes: 4e268fed8b18 ("mmc: Add mmc driver for Sunplus SP7021")
Reported-by: Dan Carpenter <redacted>
Closes: https://lore.kernel.org/all/a3829ed3-d827-4b9d-827e-9cc24a3ec3bc@moroto.mountain/
Signed-off-by: Harshit Mogalapalli <redacted>
This doesn't apply on my next branch, please rebase it.
Moreover, it looks like you should replace a few more "goto
probe_free_host;" with "return ret;". Please have a closer look.
Kind regards
Uffe
quoted hunk
---
This is based on static analysis with smatch, only compile tested.
v1->v2: Simplify code by using devm_mmc_alloc_host() instead of
mmc_alloc_host() (Ulf Hansson's suggestion)
---
drivers/mmc/host/sunplus-mmc.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
On Wed, 9 Aug 2023 at 13:08, Ulf Hansson [off-list ref] wrote:
On Wed, 9 Aug 2023 at 09:18, Harshit Mogalapalli
[off-list ref] wrote:
quoted
When mmc allocation succeeds, the error paths are not freeing mmc.
Fix the above issue by changing mmc_alloc_host() to devm_mmc_alloc_host()
to simplify the error handling. Remove label 'probe_free_host' as devm_*
api takes care of freeing, also remove mmc_free_host() from remove
function as devm_* takes care of freeing.
Fixes: 4e268fed8b18 ("mmc: Add mmc driver for Sunplus SP7021")
Reported-by: Dan Carpenter <redacted>
Closes: https://lore.kernel.org/all/a3829ed3-d827-4b9d-827e-9cc24a3ec3bc@moroto.mountain/
Signed-off-by: Harshit Mogalapalli <redacted>
This doesn't apply on my next branch, please rebase it.
Moreover, it looks like you should replace a few more "goto
probe_free_host;" with "return ret;". Please have a closer look.
Oh, my bad, please ignore the above!
I had another fix for the sunplus driver queued on my next branch. I
have moved that patch to fixes and applied your patch on top, thanks!
Kind regards
Uffe
quoted
---
This is based on static analysis with smatch, only compile tested.
v1->v2: Simplify code by using devm_mmc_alloc_host() instead of
mmc_alloc_host() (Ulf Hansson's suggestion)
---
drivers/mmc/host/sunplus-mmc.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
Applied for fixes and by adding a stable tag, thanks!
Kind regards
Uffe
quoted hunk
---
v1->v2: Split into two patches as they are doing different things.
This is based on static analysis with smatch, only compile tested.
---
drivers/mmc/host/sunplus-mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Applied for fixes and by adding a stable tag, thanks!
It's not really a fix. The platform_get_irq() function can't actually
return zero.
I asked Arnd about this and he said that there were some arches where
zero was a valid IRQ but they're not in the upstream kernel any more and
we're hopefully not going to do that again.
regards,
dan carpenter
Applied for fixes and by adding a stable tag, thanks!
It's not really a fix. The platform_get_irq() function can't actually
return zero.
I asked Arnd about this and he said that there were some arches where
zero was a valid IRQ but they're not in the upstream kernel any more and
we're hopefully not going to do that again.
Alright, I moved this to the next branch and dropped the fixes and stable tags.
Kind regards
Uffe