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

From: Babu Moger
Date: Fri Aug 20 2021 - 14:58:34 EST




On 8/20/21 11:40 AM, Wei Huang wrote:
>
>
> 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".

Talked to Wei on this. I will replace RHEL8.5 with just RHEL.
>
>> variable warning treated as an error. The commit removed the default case
>> snippet. The RHEL8.5 Makefile uses '-Werror=maybe-uninitialized' to force
>
> Ditto

Same as above.

>
>> 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?

No. The function prototype has changed a bit. We have to return
RMID_VAL_ERROR(u64).
Thanks
Babu
>
>>
>> if (rr->first) {
>>