Messages in this thread | | | Date | Wed, 23 Apr 2008 20:35:15 +0300 | From | "Pekka Enberg" <> | Subject | Re: [sched-devel/latest] WARNING: at mm/slub.c:2443 |
| |
On Wed, Apr 23, 2008 at 8:11 PM, Pete Zaitcev <zaitcev@redhat.com> wrote: > > --- a/drivers/usb/mon/mon_text.c > > +++ b/drivers/usb/mon/mon_text.c > > @@ -449,6 +449,7 @@ static struct mon_event_text *mon_text_read_wait(struct mon_reader_text *rp, > > if (file->f_flags & O_NONBLOCK) { > > set_current_state(TASK_RUNNING); > > remove_wait_queue(&rp->wait, &waita); > > + kmem_cache_free(rp->e_slab, ep); > > return ERR_PTR(-EWOULDBLOCK); > > The code looks like this: > > while ((ep = mon_text_fetch(rp, mbus)) == NULL) { > > if (file->f_flags & O_NONBLOCK) { > set_current_state(TASK_RUNNING); > remove_wait_queue(&rp->wait, &waita); > return ERR_PTR(-EWOULDBLOCK); > > It's impossible to get inside the while() with non-null ep, > so your patch doesn't fix anything (even if kmem_cache_free > can survive a NULL object).
Yeah, I need a new pair of glasses. Thanks.
On Wed, Apr 23, 2008 at 8:11 PM, Pete Zaitcev <zaitcev@redhat.com> wrote: > Any other ideas?
Well, a race in mon_text_release() after the kmem_cache_free() loop and the call to kmem_cache_destroy() but looks like that can't happen either. Frans, is this easily triggerable? If so, can you try with CONFIG_SLAB and CONFIG_DEBUG_SLAB enabled instead?
| |