Most recent kernel where this bug did not occur: did not tested this in earlier kernels Distribution: Fedora Core 5 Hardware Environment: Software Environment: Vanilla 2.6.16 kernel [root@vkondra-mobl ~]# cat /proc/version Linux version 2.6.16 (root@vkondra-mobl) (gcc version 4.1.0 20060304 (Red Hat 4.1.0-3)) #1 PREEMPT Mon Mar 20 13:43:30 IST 2006 Problem Description: sleeping function called in invalid context. Steps to reproduce: Enable audit rule to track all "exit" syscalls: auditctl -a exit,always -S exit run anything, 'ls' is OK. This will trigger the following error: Mar 23 16:15:10 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 Mar 23 16:15:10 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 Mar 23 16:15:10 vkondra-mobl kernel: [<c0104084>] show_trace+0xd/0xf Mar 23 16:15:10 vkondra-mobl kernel: [<c01040d0>] dump_stack+0x17/0x19 Mar 23 16:15:10 vkondra-mobl kernel: [<c0114685>] __might_sleep+0x86/0x90 Mar 23 16:15:10 vkondra-mobl kernel: [<c01345e5>] audit_log_exit+0x136/0x36b Mar 23 16:15:10 vkondra-mobl kernel: [<c013560a>] audit_free+0x101/0x20e Mar 23 16:15:10 vkondra-mobl kernel: [<c0117368>] __put_task_struct_cb+0x8f/0xdc Mar 23 16:15:10 vkondra-mobl kernel: [<c012624d>] __rcu_process_callbacks+0xf6/0x14b Mar 23 16:15:10 vkondra-mobl kernel: [<c01262b4>] rcu_process_callbacks+0x12/0x23 Mar 23 16:15:10 vkondra-mobl kernel: [<c011c5c8>] tasklet_action+0x3a/0x60 Mar 23 16:15:10 vkondra-mobl kernel: [<c011c513>] __do_softirq+0x43/0x8f Mar 23 16:15:10 vkondra-mobl kernel: [<c011c589>] do_softirq+0x2a/0x2f Mar 23 16:15:10 vkondra-mobl kernel: [<c011c662>] irq_exit+0x30/0x3c Mar 23 16:15:10 vkondra-mobl kernel: [<c0104c02>] do_IRQ+0x4a/0x58 Mar 23 16:15:10 vkondra-mobl kernel: [<c01036fe>] common_interrupt+0x1a/0x20 Mar 23 16:15:10 vkondra-mobl kernel: [<c014d41a>] cache_alloc_debugcheck_after+0x25/0xf4 Mar 23 16:15:10 vkondra-mobl kernel: [<c014d565>] kmem_cache_alloc+0x7c/0x88 Mar 23 16:15:10 vkondra-mobl kernel: [<c0239690>] __alloc_skb+0x29/0xf4 Mar 23 16:15:10 vkondra-mobl kernel: [<c02366f3>] sock_alloc_send_skb+0x62/0x19a Mar 23 16:15:10 vkondra-mobl kernel: [<c028afed>] unix_stream_sendmsg+0x131/0x2fd Mar 23 16:15:10 vkondra-mobl kernel: [<c023415d>] do_sock_write+0xb5/0xbe Mar 23 16:15:10 vkondra-mobl kernel: [<c0234f84>] sock_aio_write+0x56/0x64 Mar 23 16:15:10 vkondra-mobl kernel: [<c0150684>] do_sync_write+0xb1/0xe6 Mar 23 16:15:10 vkondra-mobl kernel: [<c0150f41>] vfs_write+0xbc/0x154 Mar 23 16:15:10 vkondra-mobl kernel: [<c01514a5>] sys_write+0x3b/0x60 Mar 23 16:15:10 vkondra-mobl kernel: [<c0102cb9>] syscall_call+0x7/0xb
bugme-daemon@bugzilla.kernel.org wrote: > > http://bugzilla.kernel.org/show_bug.cgi?id=6274 > > Summary: audit_log_exit calls sleeping function in invalid > context > Kernel Version: 2.6.16 > Status: NEW > Severity: normal > Owner: process_other@kernel-bugs.osdl.org > Submitter: vladimir.kondratiev@intel.com > > > Most recent kernel where this bug did not occur: > did not tested this in earlier kernels > > Distribution: > Fedora Core 5 > > Hardware Environment: > Software Environment: > Vanilla 2.6.16 kernel > [root@vkondra-mobl ~]# cat /proc/version > Linux version 2.6.16 (root@vkondra-mobl) (gcc version 4.1.0 20060304 (Red Hat > 4.1.0-3)) #1 PREEMPT Mon Mar 20 13:43:30 IST 2006 > > Problem Description: > sleeping function called in invalid context. > > Steps to reproduce: > > Enable audit rule to track all "exit" syscalls: > auditctl -a exit,always -S exit > > run anything, 'ls' is OK. This will trigger the following error: > > Mar 23 16:15:10 vkondra-mobl kernel: Debug: sleeping function called from > invalid context at include/linux/rwsem.h:43 > Mar 23 16:15:10 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 > Mar 23 16:15:10 vkondra-mobl kernel: [<c0104084>] show_trace+0xd/0xf > Mar 23 16:15:10 vkondra-mobl kernel: [<c01040d0>] dump_stack+0x17/0x19 > Mar 23 16:15:10 vkondra-mobl kernel: [<c0114685>] __might_sleep+0x86/0x90 > Mar 23 16:15:10 vkondra-mobl kernel: [<c01345e5>] audit_log_exit+0x136/0x36b > Mar 23 16:15:10 vkondra-mobl kernel: [<c013560a>] audit_free+0x101/0x20e > Mar 23 16:15:10 vkondra-mobl kernel: [<c0117368>] __put_task_struct_cb+0x8f/0xdc > Mar 23 16:15:10 vkondra-mobl kernel: [<c012624d>] > __rcu_process_callbacks+0xf6/0x14b > Mar 23 16:15:10 vkondra-mobl kernel: [<c01262b4>] rcu_process_callbacks+0x12/0x23 > Mar 23 16:15:10 vkondra-mobl kernel: [<c011c5c8>] tasklet_action+0x3a/0x60 > Mar 23 16:15:10 vkondra-mobl kernel: [<c011c513>] __do_softirq+0x43/0x8f > Mar 23 16:15:10 vkondra-mobl kernel: [<c011c589>] do_softirq+0x2a/0x2f > Mar 23 16:15:10 vkondra-mobl kernel: [<c011c662>] irq_exit+0x30/0x3c > Mar 23 16:15:10 vkondra-mobl kernel: [<c0104c02>] do_IRQ+0x4a/0x58 > Mar 23 16:15:10 vkondra-mobl kernel: [<c01036fe>] common_interrupt+0x1a/0x20 > Mar 23 16:15:10 vkondra-mobl kernel: [<c014d41a>] > cache_alloc_debugcheck_after+0x25/0xf4 > Mar 23 16:15:10 vkondra-mobl kernel: [<c014d565>] kmem_cache_alloc+0x7c/0x88 > Mar 23 16:15:10 vkondra-mobl kernel: [<c0239690>] __alloc_skb+0x29/0xf4 > Mar 23 16:15:10 vkondra-mobl kernel: [<c02366f3>] sock_alloc_send_skb+0x62/0x19a > Mar 23 16:15:10 vkondra-mobl kernel: [<c028afed>] unix_stream_sendmsg+0x131/0x2fd > Mar 23 16:15:10 vkondra-mobl kernel: [<c023415d>] do_sock_write+0xb5/0xbe > Mar 23 16:15:10 vkondra-mobl kernel: [<c0234f84>] sock_aio_write+0x56/0x64 > Mar 23 16:15:10 vkondra-mobl kernel: [<c0150684>] do_sync_write+0xb1/0xe6 > Mar 23 16:15:10 vkondra-mobl kernel: [<c0150f41>] vfs_write+0xbc/0x154 > Mar 23 16:15:10 vkondra-mobl kernel: [<c01514a5>] sys_write+0x3b/0x60 > Mar 23 16:15:10 vkondra-mobl kernel: [<c0102cb9>] syscall_call+0x7/0xb Yes, bad. We cannot perform sleeping things in an RCU callback. I don't think that audit_log_exit() call is in the correct place anyway. It's not actually logging an "exit" - it's currently logging the free of a task_struct, which can happen an arbitrary time later and can be performed by a different task (or by none at all, as in this case). IOW: shouldn't we be calling audit_log_exit() from within do_exit()?? A backportable-to-2.6.16.1 fix is needed, I'd suggest.
vladimir I failed to recreate the problem on 2.6.16.12 and in 2.6.17-rc4,it seems that bug is fixed. Please verify.
It looks like audit_log_start() in audit_log_exit() was using GFP_KERNEL in 2.6.16 which might caused to block. Whereas in newer kernel(2.6.16.**) it has been changed to gfp_mask(which is GFP_ATOMIC). Hence we will not see the problem. ================================================================= in 2.6.16.rc4 at audit_log_exit() ================================== for (aux = context->aux; aux; aux = aux->next) { ab = audit_log_start(context, GFP_KERNEL, aux->type); if (!ab) continue; /* audit_panic has been called */ ============================================== In 2.6.16.** at audit_log_exit() ============================================== for (aux = context->aux; aux; aux = aux->next) { ab = audit_log_start(context, gfp_mask, aux->type); if (!ab) continue; /* audit_panic has been called */ ====================================================
This is the patch,which already included in the newer kerel. http://kernel.org/git/?p=linux/kernel/git/stable/linux-2.6.16.y.git;a=commitdiff;h=ef20c8c197df9b8d5bd4af0679123826da028861
I checked with 2.6.16.18. Same scenario leads to the same oops. In 2.6.16.x tree, bug is still here. More precisely, I got the following, before complete freeze: May 24 18:57:00 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:00 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:00 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:00 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:00 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:00 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:00 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:00 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:00 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:00 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:00 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:00 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:00 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:00 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:00 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:00 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:00 vkondra-mobl kernel: [<c015f4b0>] __user_walk_fd+0x2f/0x43 May 24 18:57:00 vkondra-mobl kernel: [<c0158e64>] sys_readlinkat+0x26/0x93 May 24 18:57:00 vkondra-mobl kernel: [<c0158ee4>] sys_readlink+0x13/0x15 May 24 18:57:00 vkondra-mobl kernel: [<c0102ce1>] syscall_call+0x7/0xb May 24 18:57:05 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:05 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:05 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:05 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:05 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:05 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:05 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:05 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:05 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:05 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:05 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:05 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:05 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:05 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:05 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:05 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:10 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:10 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:10 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:10 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:10 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:10 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:10 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:10 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:10 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:10 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:10 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:10 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:10 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:10 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:10 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:10 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:10 vkondra-mobl kernel: [<c01dba59>] acpi_ut_remove_reference+0x24/0x27 May 24 18:57:10 vkondra-mobl kernel: [<c01cf1f3>] acpi_ex_opcode_1A_0T_1R+0x153/0x450 May 24 18:57:10 vkondra-mobl kernel: [<c01c86af>] acpi_ds_exec_end_op+0xc1/0x3c6 May 24 18:57:10 vkondra-mobl kernel: [<c01d692a>] acpi_ps_parse_loop+0x582/0x870 May 24 18:57:10 vkondra-mobl kernel: [<c01d5f92>] acpi_ps_parse_aml+0x4d/0x209 May 24 18:57:10 vkondra-mobl kernel: [<c01d7089>] acpi_ps_execute_pass+0x7a/0x8f May 24 18:57:10 vkondra-mobl kernel: [<c01d719b>] acpi_ps_execute_method+0xc9/0x156 May 24 18:57:10 vkondra-mobl kernel: [<c01d454b>] acpi_ns_evaluate_by_handle+0xd7/0x131 May 24 18:57:10 vkondra-mobl kernel: [<c01d46c1>] acpi_ns_evaluate_relative+0xa9/0xcc May 24 18:57:10 vkondra-mobl kernel: [<c01d3fb8>] acpi_evaluate_object+0x117/0x1b4 May 24 18:57:10 vkondra-mobl kernel: [<f89df165>] acpi_battery_get_info+0x61/0xfc [battery] May 24 18:57:10 vkondra-mobl kernel: [<f89df612>] acpi_battery_read_info+0x37/0x1d0 [battery] May 24 18:57:10 vkondra-mobl kernel: [<c016cdab>] seq_read+0xff/0x273 May 24 18:57:10 vkondra-mobl kernel: [<c01510e6>] vfs_read+0xa9/0x152 May 24 18:57:10 vkondra-mobl kernel: [<c01514a9>] sys_read+0x3b/0x60 May 24 18:57:10 vkondra-mobl kernel: [<c0102ce1>] syscall_call+0x7/0xb May 24 18:57:15 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:15 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:15 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:15 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:15 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:15 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:15 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:15 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:15 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:15 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:15 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:15 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:15 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:15 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:15 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:15 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:25 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:25 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:25 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:25 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:25 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:25 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:25 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:25 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:25 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:25 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:25 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:25 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:25 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:25 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:25 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:25 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:25 vkondra-mobl kernel: [<c01414b3>] __handle_mm_fault+0x34e/0x795 May 24 18:57:25 vkondra-mobl kernel: [<c02919cb>] do_page_fault+0x178/0x521 May 24 18:57:25 vkondra-mobl kernel: [<c0103813>] error_code+0x4f/0x54 May 24 18:57:30 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:30 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:30 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:30 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:30 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:30 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:30 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:30 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:30 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:30 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:30 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:30 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:30 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:30 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:30 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:30 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:30 vkondra-mobl kernel: [<c01d2866>] acpi_hw_low_level_read+0x41/0x70 May 24 18:57:30 vkondra-mobl kernel: [<c01de0de>] acpi_ec_read_status+0x1d/0x22 May 24 18:57:30 vkondra-mobl kernel: [<c01de233>] acpi_ec_wait+0x150/0x179 May 24 18:57:30 vkondra-mobl kernel: [<c01de974>] acpi_ec_read+0x1b8/0x20b May 24 18:57:30 vkondra-mobl kernel: [<c01dea6a>] acpi_ec_space_handler+0xa3/0x17c May 24 18:57:30 vkondra-mobl kernel: [<c01cacbd>] acpi_ev_address_space_dispatch+0x140/0x185 May 24 18:57:30 vkondra-mobl kernel: [<c01ce9c8>] acpi_ex_access_region+0x1af/0x1c8 May 24 18:57:30 vkondra-mobl kernel: [<c01ceaf2>] acpi_ex_field_datum_io+0x111/0x198 May 24 18:57:30 vkondra-mobl kernel: [<c01cec6e>] acpi_ex_extract_from_field+0xf5/0x1f8 May 24 18:57:30 vkondra-mobl kernel: [<c01cd624>] acpi_ex_read_data_from_field+0x11c/0x14a May 24 18:57:30 vkondra-mobl kernel: [<c01d22c2>] acpi_ex_resolve_node_to_value+0x142/0x1bc May 24 18:57:30 vkondra-mobl kernel: [<c01ce19a>] acpi_ex_resolve_to_value+0x1ea/0x1f8 May 24 18:57:30 vkondra-mobl kernel: [<c01cffe5>] acpi_ex_resolve_operands+0x1e0/0x4cb May 24 18:57:30 vkondra-mobl kernel: [<c01c869d>] acpi_ds_exec_end_op+0xaf/0x3c6 May 24 18:57:30 vkondra-mobl kernel: [<c01d692a>] acpi_ps_parse_loop+0x582/0x870 May 24 18:57:30 vkondra-mobl kernel: [<c01d5f92>] acpi_ps_parse_aml+0x4d/0x209 May 24 18:57:30 vkondra-mobl kernel: [<c01d7089>] acpi_ps_execute_pass+0x7a/0x8f May 24 18:57:30 vkondra-mobl kernel: [<c01d719b>] acpi_ps_execute_method+0xc9/0x156 May 24 18:57:30 vkondra-mobl kernel: [<c01d454b>] acpi_ns_evaluate_by_handle+0xd7/0x131 May 24 18:57:30 vkondra-mobl kernel: [<c01d46c1>] acpi_ns_evaluate_relative+0xa9/0xcc May 24 18:57:30 vkondra-mobl kernel: [<c01d3fb8>] acpi_evaluate_object+0x117/0x1b4 May 24 18:57:30 vkondra-mobl kernel: [<f89df165>] acpi_battery_get_info+0x61/0xfc [battery] May 24 18:57:30 vkondra-mobl kernel: [<f89df612>] acpi_battery_read_info+0x37/0x1d0 [battery] May 24 18:57:30 vkondra-mobl kernel: [<c016cdab>] seq_read+0xff/0x273 May 24 18:57:30 vkondra-mobl kernel: [<c01510e6>] vfs_read+0xa9/0x152 May 24 18:57:30 vkondra-mobl kernel: [<c01514a9>] sys_read+0x3b/0x60 May 24 18:57:30 vkondra-mobl kernel: [<c0102ce1>] syscall_call+0x7/0xb May 24 18:57:35 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:35 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:35 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:35 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:35 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:35 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:35 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:35 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:35 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:35 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:35 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:35 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:35 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:35 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:35 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:35 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:35 vkondra-mobl kernel: [<f882f76d>] journal_stop+0x1c7/0x1de [jbd] May 24 18:57:35 vkondra-mobl kernel: [<f88662a8>] __ext3_journal_stop+0x1c/0x38 [ext3] May 24 18:57:35 vkondra-mobl kernel: [<f8861c79>] ext3_dirty_inode+0x62/0x6a [ext3] May 24 18:57:35 vkondra-mobl kernel: [<c016ef13>] __mark_inode_dirty+0x2a/0x157 May 24 18:57:35 vkondra-mobl kernel: [<c0167740>] touch_atime+0x89/0x8f May 24 18:57:35 vkondra-mobl kernel: [<c0137414>] do_generic_mapping_read+0x3d6/0x419 May 24 18:57:35 vkondra-mobl kernel: [<c0137b6e>] __generic_file_aio_read+0x189/0x1df May 24 18:57:35 vkondra-mobl kernel: [<c0137c00>] generic_file_aio_read+0x3c/0x44 May 24 18:57:35 vkondra-mobl kernel: [<c01507ce>] do_sync_read+0xb1/0xe6 May 24 18:57:35 vkondra-mobl kernel: [<c01510e6>] vfs_read+0xa9/0x152 May 24 18:57:35 vkondra-mobl kernel: [<c015998e>] kernel_read+0x34/0x3f May 24 18:57:35 vkondra-mobl kernel: [<c0159a59>] prepare_binprm+0xc0/0xd0 May 24 18:57:35 vkondra-mobl kernel: [<c015afe2>] do_execve+0xfa/0x1ef May 24 18:57:35 vkondra-mobl kernel: [<c01017ad>] sys_execve+0x2a/0x6c May 24 18:57:35 vkondra-mobl kernel: [<c0102ce1>] syscall_call+0x7/0xb May 24 18:57:45 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:45 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:45 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:45 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:45 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:45 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:45 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:45 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:45 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:45 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:45 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:45 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:45 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:45 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:45 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:45 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:55 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:57:55 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:57:55 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:57:55 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:57:55 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:57:55 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:57:55 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:57:55 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:57:55 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:57:55 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:57:55 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:57:55 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:57:55 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:57:55 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:57:55 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:57:55 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:57:55 vkondra-mobl kernel: [<c0120308>] do_sigaction+0x1ac/0x1bd May 24 18:57:55 vkondra-mobl kernel: [<c012039b>] sys_rt_sigaction+0x4a/0x77 May 24 18:57:55 vkondra-mobl kernel: [<c0102ce1>] syscall_call+0x7/0xb May 24 18:58:00 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:58:00 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:58:00 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:58:00 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:58:00 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:58:00 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:58:00 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:58:00 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:58:00 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:58:00 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:58:00 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:58:00 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:58:00 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:58:00 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:58:00 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:58:00 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:58:05 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:58:05 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:58:05 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:58:05 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:58:05 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:58:05 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:58:05 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:58:05 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:58:05 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:58:05 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:58:05 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:58:05 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:58:05 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:58:05 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:58:05 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:58:05 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:58:10 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:58:10 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:58:10 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:58:10 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:58:10 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:58:10 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:58:10 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:58:10 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:58:10 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:58:10 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:58:10 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:58:10 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:58:10 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:58:10 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:58:10 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:58:10 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:58:15 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:58:15 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:58:15 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:58:15 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:58:15 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:58:15 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:58:15 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:58:15 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:58:15 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:58:15 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:58:15 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:58:15 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:58:15 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:58:15 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:58:15 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:58:15 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:58:20 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:58:20 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:58:20 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:58:20 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:58:20 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:58:20 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:58:20 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:58:20 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:58:20 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:58:20 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:58:20 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:58:20 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:58:20 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:58:20 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:58:20 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:58:20 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:58:50 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:58:50 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:58:50 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:58:50 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:58:50 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:58:50 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:58:50 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:58:50 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:58:50 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:58:50 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:58:50 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:58:50 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:58:50 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:58:50 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:58:50 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:58:50 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20 May 24 18:59:00 vkondra-mobl kernel: Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 May 24 18:59:00 vkondra-mobl kernel: in_atomic():1, irqs_disabled():0 May 24 18:59:00 vkondra-mobl kernel: [<c01040c0>] show_trace+0xd/0xf May 24 18:59:00 vkondra-mobl kernel: [<c010410c>] dump_stack+0x17/0x19 May 24 18:59:00 vkondra-mobl kernel: [<c01146a5>] __might_sleep+0x86/0x90 May 24 18:59:00 vkondra-mobl kernel: [<c013464d>] audit_log_exit+0x136/0x36b May 24 18:59:00 vkondra-mobl kernel: [<c013565b>] audit_free+0x101/0x20e May 24 18:59:00 vkondra-mobl kernel: [<c011738f>] __put_task_struct_cb+0x8f/0xdc May 24 18:59:00 vkondra-mobl kernel: [<c01262cd>] __rcu_process_callbacks+0xf6/0x14b May 24 18:59:00 vkondra-mobl kernel: [<c0126334>] rcu_process_callbacks+0x12/0x23 May 24 18:59:00 vkondra-mobl kernel: [<c011c63c>] tasklet_action+0x3a/0x60 May 24 18:59:00 vkondra-mobl kernel: [<c011c587>] __do_softirq+0x43/0x8f May 24 18:59:00 vkondra-mobl kernel: [<c011c5fd>] do_softirq+0x2a/0x2f May 24 18:59:00 vkondra-mobl kernel: [<c011c6d6>] irq_exit+0x30/0x3c May 24 18:59:00 vkondra-mobl kernel: [<c0104c52>] do_IRQ+0x4a/0x58 May 24 18:59:00 vkondra-mobl kernel: [<c0103726>] common_interrupt+0x1a/0x20
vladimir Please attach your config file,that helps me in debugging this problem further. Thanks
Created attachment 8218 [details] my .config for 2.6.16.18
Vladimir From comment#1 made by Andrew morton,It is clear that audit_log_exit() is not in the correct place(i,e in __put_task_struct_cb()) and that is causing the problem. So there is already a patch in 2.6.17-rc5 which removes audit_free() from __put_task_struct_cb() and inserts it in do_exit(). This is patch is not in 2.6.16.18 and hence we can reproduce the problem. Here is the patch,which fixes the bug http://www.kernel.org/git/?p=linux/kernel/git/aegl/linux-2.6.git;a=commitdiff; h=fa84cb935d4ec601528f5e2f0d5d31e7876a5044; hp=d6fe3945b42d09a1eca7ad180a1646e585b8594f Please test this patch.
sorry, I missed this point. Will check with 2.6.17-rc5 and update.
Iam backporting the patch for 2.6.16.18 kernel.
Created attachment 8224 [details] Backported patch for 2.6.16.18
Verified with 2.6.17-rc5-git10 No oops. Everything works as it should be. Who shall mark it "fixed"?