Re: [PATCH] x86/resctrl: Fix 'uninitialized symbol' build warning

From: Wei Huang
Date: Fri Aug 20 2021 - 12:40:26 EST




On 8/20/21 11:33 AM, Babu Moger wrote:
> The recent commit 064855a69003 ("x86/resctrl: Fix default monitoring
> groups reporting"), caused a RHEL8.5 build failure with an uninitialized

Don't mention RHEL in the commit message, just use "commercial Linux
distro".

> variable warning treated as an error. The commit removed the default case
> snippet. The RHEL8.5 Makefile uses '-Werror=maybe-uninitialized' to force

Ditto

> uninitialized variable warnings to be treated as errors. This is also
> reported by kernel test robot. The error from the RHEL8.5 build is below:
>
> arch/x86/kernel/cpu/resctrl/monitor.c: In function ‘__mon_event_count’:
> arch/x86/kernel/cpu/resctrl/monitor.c:261:12: error: ‘m’ may be used
> uninitialized in this function [-Werror=maybe-uninitialized]
> m->chunks += chunks;
> ^~
>
> The upstream Makefile does not build using '-Werror=maybe-uninitialized'.
> So, the problem is not seen there. Fix the problem by putting back the
> default case snippet.
>
> Fixes: 064855a69003 ("x86/resctrl: Fix default monitoring groups reporting")
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Terry Bowman <Terry.Bowman@xxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Link: https://lore.kernel.org/lkml/6118d218.4ZZRXYKZCzQSq1Km%25lkp@xxxxxxxxx/
>
> Signed-off-by: Babu Moger <babu.moger@xxxxxxx>
> ---
> arch/x86/kernel/cpu/resctrl/monitor.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
> index 57e4bb695ff9..8caf871b796f 100644
> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
> @@ -304,6 +304,12 @@ static u64 __mon_event_count(u32 rmid, struct rmid_read *rr)
> case QOS_L3_MBM_LOCAL_EVENT_ID:
> m = &rr->d->mbm_local[rmid];
> break;
> + default:
> + /*
> + * Code would never reach here because an invalid
> + * event id would fail the __rmid_read.
> + */
> + return RMID_VAL_ERROR;
> }

It used to return -EINVAL, you might want to do the same?

>
> if (rr->first) {
>