lkml.org 
[lkml]   [2009]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH]: xen: fix too early kmalloc call
    On Mon, Jan 12, 2009 at 09:53:02AM +0100, Ingo Molnar wrote:
    >
    > * Mike Travis <travis@sgi.com> wrote:
    >
    > > Subject: xen: fix too early kmalloc call
    > >
    > > From: Christophe Saout <christophe@saout.de>
    > >
    > > Impact: fixes bootup of xen.
    > >
    > > Christophe reported the following problem:
    > >
    > > > (basically it seems that SLAB is not yet up, with earlyprintk it is
    > > > giving me an Oops in __kmalloc before)
    > >
    > > Replace call to kmalloc with alloc_bootmem.
    > >
    > > Also from Christophe:
    > > > (me)
    > > > > Or I could copy the text and submit it as a new patch?
    > > >
    > > > Yes, I would prefer that. Also, my commit message was not really
    > > > following Kernel standards and it's only a very simple change.
    > >
    > > Signed-off-by: Mike Travis <travis@sgi.com>
    >
    > i've applied the fix to tip/cpus4096, in the form below.
    >
    > Please submit clean log messages. Your commit description was confused -
    > the patch is From: Christophe, but the message talks about Christophe in
    > the third person. Also, it included conversational bits that have no
    > value for the Git history.
    >
    > Ingo
    >
    > -------------------->
    > >>From 28e08861b9afab4168b758fb7b95aa7a4da0f668 Mon Sep 17 00:00:00 2001
    > From: Christophe Saout <christophe@saout.de>
    > Date: Sun, 11 Jan 2009 11:46:23 -0800
    > Subject: [PATCH] xen: fix too early kmalloc call
    >
    > Impact: fix bootup crash on xen guests
    >
    > SLAB is not yet up, with earlyprintk it is giving me an Oops in __kmalloc.
    >
    > Replace call to kmalloc() with alloc_bootmem().
    >
    > Reported-by: Christophe Saout <christophe@saout.de>
    > Signed-off-by: Mike Travis <travis@sgi.com>
    > Signed-off-by: Ingo Molnar <mingo@elte.hu>
    > ---
    > drivers/xen/events.c | 5 +++--
    > 1 files changed, 3 insertions(+), 2 deletions(-)
    >
    > diff --git a/drivers/xen/events.c b/drivers/xen/events.c
    > index ed7527b..3141e14 100644
    > --- a/drivers/xen/events.c
    > +++ b/drivers/xen/events.c
    > @@ -26,6 +26,7 @@
    > #include <linux/irq.h>
    > #include <linux/module.h>
    > #include <linux/string.h>
    > +#include <linux/bootmem.h>
    >
    > #include <asm/ptrace.h>
    > #include <asm/irq.h>
    > @@ -831,8 +832,8 @@ void __init xen_init_IRQ(void)
    > int i;
    > size_t size = nr_cpu_ids * sizeof(struct cpu_evtchn_s);
    >
    > - cpu_evtchn_mask_p = kmalloc(size, GFP_KERNEL);
    > - BUG_ON(cpu_evtchn_mask == NULL);
    > + cpu_evtchn_mask_p = alloc_bootmem(size);
    > + BUG_ON(cpu_evtchn_mask_p == NULL);

    Impossible condition :-) alloc_bootmem() crashes before you could
    catch it here.

    Hannes


    \
     
     \ /
      Last update: 2009-01-12 15:45    [W:0.024 / U:31.532 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site