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.
Ug! The quick fix was a bad idea. I will work on the workqueue idea
instead. Ignore the pull.
-------------------------------------------------------
This SF.net email is sponsored by:
The Definitive IT and Networking Event. Be There!
NetWorld+Interop Las Vegas 2003 -- Register today!
http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en