Re: [PATCH v2] apic, x86: Need to set offset before using it

Ingo Molnar
2010-10-25T06:50:57Z

* Jaswinder Singh <jaswinder@infradead.org> wrote:

> Fix the issue pointed by Stephen.
>
> Stephen Rothwell wrote :
> In building Linus' tree, today's linux-next build (x86_64 allmodconfig)
> produced this warning:
>
> arch/x86/oprofile/op_model_amd.c: In function 'ibs_eilvt_valid':
> arch/x86/oprofile/op_model_amd.c:289: warning: 'offset' may be used uninitialized in this function
>
> Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Cc: Robert Richter <robert.richter@amd.com>
> Cc: Ingo Molnar <mingo@elte.hu>
> ---
> arch/x86/oprofile/op_model_amd.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
> index 42fb46f..c65a924 100644
> --- a/arch/x86/oprofile/op_model_amd.c
> +++ b/arch/x86/oprofile/op_model_amd.c
> @@ -285,6 +285,7 @@ static inline int ibs_eilvt_valid(void)
> int offset;
>
> rdmsrl(MSR_AMD64_IBSCTL, val);
> + offset = val & IBSCTL_LVT_OFFSET_MASK;
> if (!(val & IBSCTL_LVT_OFFSET_VALID)) {
> pr_err(FW_BUG "cpu %d, invalid IBS "
> "interrupt offset %d (MSR%08X=0x%016llx)",
> @@ -293,8 +294,6 @@ static inline int ibs_eilvt_valid(void)
> return 0;
> }
>
> - offset = val & IBSCTL_LVT_OFFSET_MASK;
> -
> if (eilvt_is_available(offset))
> return !0;

I queued up a different fix, one which also address some of the structural details
in this function.

Thanks,

Ingo