Re: [BK FBDEV] A few more updates.

From: Benjamin Herrenschmidt (benh@kernel.crashing.org)
Date: Tue Mar 25 2003 - 13:28:21 EST


On Tue, 2003-03-25 at 19:32, James Simmons wrote:
> Linus, please do a
>
> bk pull http://fbdev.bkbits.net/fbdev-2.5
>
> This will update the following files:
>
> drivers/video/aty/aty128fb.c | 16 +++++++---------
> drivers/video/console/fbcon.c | 4 ++--
> drivers/video/controlfb.c | 18 +++---------------
> drivers/video/platinumfb.c | 28 ++++++++--------------------
> drivers/video/radeonfb.c | 10 ++++++++++
> drivers/video/softcursor.c | 2 +-
> 6 files changed, 31 insertions(+), 47 deletions(-)
>
> through these ChangeSets:
>
> <jsimmons@maxwell.earthlink.net> (03/03/25 1.981)
> [FBCON] Could be called outside of a process context. This fixes that.

You "fixed" it by using GFP_ATOMIC but didn't test the result of
kmalloc. That is very bad. GFP_ATOMIC can fail (return NULL), thus
you will crash the kernel under high memory pressure.

I think the proper fix is, as you asked me, using a workqueue,
that way, you can both use GFP_KERNEL allocations, and avoid
the spinlock you added to fbmem.c, thus letting the fb_sync()
ops on fbdev's be able to block.

Ben.

-
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 : Mon Mar 31 2003 - 22:00:20 EST