[PATCH] lib: sbi: Resolve the uninitialized complaint in sbi_pmu
Dong Du
dd_nirvana at sjtu.edu.cn
Thu Nov 25 22:38:02 PST 2021
On Nov 25, 2021, at 11:35 PM, Xiang wxjstz at 126.com wrote:
> 在 2021-11-25星期四的 18:38 +0800,Dong Du写道:
>> A recent commit (b28f0700) turns to read from CSR_MCOUNTINHIBIT after
>> checking the SBI_HART_HAS_MCOUNTINHIBIT HART feature, which leaves
>> the
>> mctr_inhbt uninitialized in pmu_ctr_find_hw().
>> As a result, compiler will complain:
>> error: 'mctr_inhbt' may be used uninitialized in this function.
>>
>> This commit resolves the issue by assigning an initial value to
>> mctr_inhbt.
>>
>> Signed-off-by: Dong Du <Dd_nirvana at sjtu.edu.cn>
> SBI_HART_HAS_MCOUNTINHIBIT has been tested before accessing mctr_inhbt,
Hi Xiang,
It's true. It's not a bug (as I said, it's a compiler complaint).
But the compiler (gcc) can not know (and ensure) that the used variable is always initialized.
The reported issue will lead to a compiling error now in my environment because of 'Werror=maybe-uninitialized'.
Regards,
Dong
> so there is no need to initialize
>
> Regards,
> Xiang W
>> ---
>> lib/sbi/sbi_pmu.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c
>> index a0eb359..5950a20 100644
>> --- a/lib/sbi/sbi_pmu.c
>> +++ b/lib/sbi/sbi_pmu.c
>> @@ -489,7 +489,7 @@ static int pmu_ctr_find_hw(unsigned long cbase,
>> unsigned long cmask, unsigned lo
>> unsigned long ctr_mask;
>> int i, ret = 0, fixed_ctr, ctr_idx = SBI_ENOTSUPP;
>> struct sbi_pmu_hw_event *temp;
>> - unsigned long mctr_inhbt;
>> + unsigned long mctr_inhbt = 0;
>> u32 hartid = current_hartid();
>> struct sbi_scratch *scratch = sbi_scratch_thishart_ptr();
>>
>> --
>> 2.33.1
>>
More information about the opensbi
mailing list