> From: Avadhut Naik <[email protected]>
> [...]
> --- a/arch/x86/kernel/cpu/mce/core.c
> +++ b/arch/x86/kernel/cpu/mce/core.c
> [...]
> @@ -1506,13 +1528,14 @@ noinstr void do_machine_check(struct pt_regs
> *regs)
> 
>       this_cpu_inc(mce_exception_count);
> 
> -     mce_gather_info(&m, regs);
> -     m.tsc = rdtsc();
> +     mce_gather_info(&err, regs);
> +     m = &err.m;
> +     m->tsc = rdtsc();
> 
> -     final = this_cpu_ptr(&mces_seen);
> -     *final = m;
> +     final = this_cpu_ptr(&hw_errs_seen);
> +     final = &err;

It's not about getting the 'final' pointer to point to 'err', instead 
initialize the data it points to with 'err'.
So, it should be:

    s/final = &err/*final = err/

[...]

-Qiuxu

Reply via email to