Re: linux-next: Tree for May 29 (__rdmsr_on_cpu() OOPS)

From: Eric Paris
Date: Mon Jun 01 2009 - 15:55:34 EST


On Sat, May 30, 2009 at 3:37 PM, Bartlomiej Zolnierkiewicz
<bzolnier@xxxxxxxxx> wrote:

> [ Borislav, feel free to fold it into the above change or replace by
>  a more complete one if needed (there may be more rv fields needing
>  initialization). ]
>
> From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
> Subject: [PATCH] x86: MSR: fix __rdmsr_on_cpu() OOPS
>
> {rd,wr}msr_on_cpu() need to explicitly initalize rv.msrs
> (since rv is allocated on the stack).
>
> Cc: Borislav Petkov <borislav.petkov@xxxxxxx>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>

Still broken in 0601, none of my systems will even boot without this patch.

Tested-by: Eric Paris <eparis@xxxxxxxxxx>

> ---
>  arch/x86/lib/msr.c |    2 ++
>  1 file changed, 2 insertions(+)
>
> Index: b/arch/x86/lib/msr.c
> ===================================================================
> --- a/arch/x86/lib/msr.c
> +++ b/arch/x86/lib/msr.c
> @@ -44,6 +44,7 @@ int rdmsr_on_cpu(unsigned int cpu, u32 m
>        int err;
>        struct msr_info rv;
>
> +       rv.msrs   = NULL;
>        rv.msr_no = msr_no;
>        err = smp_call_function_single(cpu, __rdmsr_on_cpu, &rv, 1);
>        *l = rv.reg.l;
> @@ -58,6 +59,7 @@ int wrmsr_on_cpu(unsigned int cpu, u32 m
>        int err;
>        struct msr_info rv;
>
> +       rv.msrs   = NULL;
>        rv.msr_no = msr_no;
>        rv.reg.l = l;
>        rv.reg.h = h;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/