From mboxrd@z Thu Jan 1 00:00:00 1970 From: Knut Petersen Date: Mon, 24 Jan 2011 09:25:55 +0000 Subject: [BUG] 2.6.38-rc2: Circular Locking Dependency Message-Id: <4D3D45A3.7040809@t-online.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-kernel@vger.kernel.org Cc: paulus@samba.org, mostrows@earthlink.net, linux-ppp@vger.kernel.org As I was hunting something different I found the following (potential) problem on an openSuSE 11.3 system with kernel 2.6.38-rc2. The message is triggerd by smpppd starting a dsl connection. Knut NET: Registered protocol family 24 =========================== [ INFO: possible circular locking dependency detected ] 2.6.38-rc2-kape #7 ------------------------------------------------------- pppd/2529 is trying to acquire lock: (&(&pch->downl)->rlock){+.....}, at: [] ppp_push+0x59/0x4a8 [ppp_generic] but task is already holding lock: (&(&ppp->wlock)->rlock){+.-...}, at: [] ppp_xmit_process+0x19/0x451 [ppp_generic] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&(&ppp->wlock)->rlock){+.-...}: [] lock_acquire+0x47/0x5e [] _raw_spin_lock_bh+0x2a/0x39 [] ppp_xmit_process+0x19/0x451 [ppp_generic] [] ppp_start_xmit+0x14c/0x165 [ppp_generic] [] dev_hard_start_xmit+0x3b1/0x489 [] sch_direct_xmit+0x55/0x1b1 [] dev_queue_xmit+0x273/0x4dd [] ip_finish_output+0x2b9/0x31f [] ip_output+0xe0/0xfb [] ip_forward_finish+0x7b/0xa1 [] ip_forward+0x285/0x313 [] ip_rcv_finish+0x2b4/0x30f [] ip_rcv+0x21c/0x242 [] __netif_receive_skb+0x34a/0x388 [] netif_receive_skb+0x32/0x35 [] napi_skb_finish+0x1e/0x34 [] napi_gro_receive+0xbf/0xc7 [] sky2_poll+0x66e/0x92f [] net_rx_action+0x3f/0xfe [] __do_softirq+0x76/0xfd -> #1 (_xmit_NETROM){+.-...}: [] lock_acquire+0x47/0x5e [] _raw_spin_lock_irqsave+0x2e/0x3e [] skb_dequeue+0x12/0x4a [] ppp_channel_push+0x2e/0x94 [ppp_generic] [] ppp_write+0xa2/0xac [ppp_generic] [] vfs_write+0x8c/0x120 [] sys_write+0x3b/0x60 [] sysenter_do_call+0x12/0x32 -> #0 (&(&pch->downl)->rlock){+.....}: [] __lock_acquire+0xe23/0x13ad [] lock_acquire+0x47/0x5e [] _raw_spin_lock_bh+0x2a/0x39 [] ppp_push+0x59/0x4a8 [ppp_generic] [] ppp_xmit_process+0x3d7/0x451 [ppp_generic] [] ppp_write+0x99/0xac [ppp_generic] [] vfs_write+0x8c/0x120 [] sys_write+0x3b/0x60 [] sysenter_do_call+0x12/0x32 other info that might help us debug this: 1 lock held by pppd/2529: #0: (&(&ppp->wlock)->rlock){+.-...}, at: [] ppp_xmit_process+0x19/0x451 [ppp_generic] stack backtrace: Pid: 2529, comm: pppd Not tainted 2.6.38-rc2-kape #7 Call Trace: [] ? print_circular_bug+0x93/0x9f [] ? __lock_acquire+0xe23/0x13ad [] ? __lock_acquire+0xe71/0x13ad [] ? lock_acquire+0x47/0x5e [] ? ppp_push+0x59/0x4a8 [ppp_generic] [] ? _raw_spin_lock_bh+0x2a/0x39 [] ? ppp_push+0x59/0x4a8 [ppp_generic] [] ? ppp_push+0x59/0x4a8 [ppp_generic] [] ? mark_held_locks+0x41/0x5d [] ? _raw_spin_unlock_irqrestore+0x36/0x59 [] ? trace_hardirqs_on_caller+0xe0/0x11a [] ? _raw_spin_unlock_irqrestore+0x42/0x59 [] ? skb_dequeue+0x43/0x4a [] ? ppp_xmit_process+0x3d7/0x451 [ppp_generic] [] ? sub_preempt_count+0x81/0x8e [] ? skb_queue_tail+0x2d/0x32 [] ? ppp_write+0x99/0xac [ppp_generic] [] ? vfs_write+0x8c/0x120 [] ? ppp_write+0x0/0xac [ppp_generic] [] ? sys_write+0x3b/0x60 [] ? sysenter_do_call+0x12/0x32