Re: 2.5.41 isofs patch to avoid "bad: scheduling while atomic!"

From: Robert Love (rml@tech9.net)
Date: Thu Oct 10 2002 - 16:25:15 EST


On Thu, 2002-10-10 at 13:24, Sylvain Pasche wrote:

> - tmpname = (char *) __get_free_page(GFP_KERNEL);
> + tmpname = (char *) __get_free_page(GFP_KERNEL | GFP_ATOMIC);
> if (!tmpname)
> return -ENOMEM;
> tmpde = (struct iso_directory_record *) (tmpname+1024);

You just want GFP_ATOMIC, not the OR of both.

I do not see where the lock is in the call path, though. The
lock_kernel() is not counted.

I also wonder why the __might_sleep was just triggered but the
schedule() check was? Are you sure this is the culprit? By the looks
of it, I would think it is somewhere north of __might_sleep in the stack
trace.

        Robert Love

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



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:39 EST