| From a51865bb248ebdbba3cfcfeba0ca28f667c86451 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 21 Mar 2019 11:00:21 -0700 |
| Subject: ARM: OMAP2+: Fix potentially uninitialized return value for |
| _setup_reset() |
| |
| From: Tony Lindgren <tony@atomide.com> |
| |
| [ Upstream commit 7f0d078667a494466991aa7133f49594f32ff6a2 ] |
| |
| Commit 747834ab8347 ("ARM: OMAP2+: hwmod: revise hardreset behavior") made |
| the call to _enable() conditional based on no oh->rst_lines_cnt. This |
| caused the return value to be potentially uninitialized. Curiously we see |
| no compiler warnings for this, probably as this gets inlined. |
| |
| We call _setup_reset() from _setup() and only _setup_postsetup() if the |
| return value is zero. Currently the return value can be uninitialized for |
| cases where oh->rst_lines_cnt is set and HWMOD_INIT_NO_RESET is not set. |
| |
| Fixes: 747834ab8347 ("ARM: OMAP2+: hwmod: revise hardreset behavior") |
| Cc: Paul Walmsley <paul@pwsan.com> |
| Cc: Tero Kristo <t-kristo@ti.com> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/arm/mach-omap2/omap_hwmod.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c |
| index bfc74954540ce..9421b78f869d3 100644 |
| --- a/arch/arm/mach-omap2/omap_hwmod.c |
| +++ b/arch/arm/mach-omap2/omap_hwmod.c |
| @@ -2588,7 +2588,7 @@ static void _setup_iclk_autoidle(struct omap_hwmod *oh) |
| */ |
| static int _setup_reset(struct omap_hwmod *oh) |
| { |
| - int r; |
| + int r = 0; |
| |
| if (oh->_state != _HWMOD_STATE_INITIALIZED) |
| return -EINVAL; |
| -- |
| 2.20.1 |
| |