Re: [sched-devel/latest] WARNING: at mm/slub.c:2443

From: Pete Zaitcev
Date: Wed Apr 23 2008 - 13:12:11 EST


On Wed, 23 Apr 2008 10:38:45 +0300 (EEST), Pekka J Enberg <penberg@xxxxxxxxxxxxxx> wrote:

> > The code analysis for usbmon shows nothing. Anyone wants to have
> > a look?

Thanks for taking this little challenge, let's have a look...

> --- 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).

Any other ideas?

-- Pete
--
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/