opost_block sleeping in illegal context.
Not seen this one before.. 2.5.67
Dave
Debug: sleeping function called from illegal context at include/linux/rwsem.h:43
Call Trace: [<c0120d61>] __might_sleep+0x61/0x80 [<c011c3af>] do_page_fault+0x19f/0x4e4 [<c013104b>] specific_send_sig_info+0xeb/0x160 [<c03291f5>] opost_block+0xf5/0x1c0 [<c011c66d>] do_page_fault+0x45d/0x4e4 [<c011c210>] do_page_fault+0x0/0x4e4 [<c010b41d>] error_code+0x2d/0x40 [<c02e66d6>] __copy_to_user_ll+0x26/0x50 [<c010e967>] save_v86_state+0x1a7/0x1c0 [<c011c210>] do_page_fault+0x0/0x4e4 [<c010a4b6>] work_notifysig_v86+0x6/0x20 [<c010a457>] syscall_call+0x7/0xb
Quoted 7 lines · Dave Jones
Not seen this one before.. 2.5.67
Dave
Debug: sleeping function called from illegal context at
include/linux/rwsem.h:43
Quoted 13 lines
Call Trace: [<c0120d61>] __might_sleep+0x61/0x80 [<c011c3af>] do_page_fault+0x19f/0x4e4 [<c013104b>] specific_send_sig_info+0xeb/0x160 [<c03291f5>] opost_block+0xf5/0x1c0 [<c011c66d>] do_page_fault+0x45d/0x4e4 [<c011c210>] do_page_fault+0x0/0x4e4 [<c010b41d>] error_code+0x2d/0x40 [<c02e66d6>] __copy_to_user_ll+0x26/0x50 [<c010e967>] save_v86_state+0x1a7/0x1c0 [<c011c210>] do_page_fault+0x0/0x4e4 [<c010a4b6>] work_notifysig_v86+0x6/0x20 [<c010a457>] syscall_call+0x7/0xb
No, this isn't opost_block(). It's the vm86 stuff, but I can't see why.
Is do_page_fault+0x19f/0x4e4 a down_read()? Which one?
If it's repeatable, please change __might_sleep() to display preempt_count() and irqs_disabled().