> > Split the FPU save area from the task struct. This allows easy > > migration of FPU context, and it's generally cleaner. It also allows > > the following two optimizations: the atomicity bug is still there: [ 1230.409772] BUG: sleeping function called from invalid context at mm/slab.c:> [ 1230.409772] in_atomic():0, irqs_disabled():1 [ 1230.409772] Pid: 1187, comm: awk Not tainted 2.6.25-rc4-sched-devel.git-x86->[ 1230.409772] [ 1230.409772] Call Trace: [ 1230.409772] [] ? do_page_fault+0x3eb/0xa80 [ 1230.409772] [] __might_sleep+0xce/0xf0 [ 1230.409772] [] kmem_cache_alloc+0xf9/0x120 [ 1230.409772] [] init_fpu+0x98/0x100 [ 1230.409772] [] math_state_restore+0x20/0x80 [ 1230.409772] [] error_exit+0x0/0x60 config and bootlog attached. Ingo