Re: [BUG] kmem_cache_grow.

Andrew Morton (akpm@zip.com.au)
Mon, 15 Apr 2002 00:38:05 -0700


hugang wrote:
>
> Hell all:
>
> Problem: first run "find /" , eject and insert pcmcia network's card, the kernel will crash.
>
> Kernel oops: at
> linux/mm/slab.c->kmem_cache_grow.
> if (in_interrupt() && (flags & SLAB_LEVEL_MASK) != SLAB_ATOMIC)
> BUG(); <-- here.

Known problem, I'm afraid. The PCMCIA Card Services layer
in a number of places is doing stuff from inside a timer
handler which it should not be.

> Can I remove this check ?

It's best not to, really. It'll probably appear to have
worked but your kernel could still fail in mysterious ways,
much later, very occasionally.

If you're using devfs, you could try disabling that. Not
that this is a devfs bug, but disabling devfs reduces
the number of functions which the buggy drivers call at
timer-interrupt time.

The bottom line is that we have a pcmcia_cs staffing shortage.
Somebody needs to go in, pull out the timers, use schedule_task().

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/