From mboxrd@z Thu Jan 1 00:00:00 1970 From: Larry Finger Subject: Possible circular locking in dev_queue_xmit Date: Tue, 08 Aug 2006 20:40:24 -0500 Message-ID: <44D93D08.2010000@lwfinger.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mtiwmhc12.worldnet.att.net ([204.127.131.116]:60369 "EHLO mtiwmhc12.worldnet.att.net") by vger.kernel.org with ESMTP id S1030409AbWHIBkg (ORCPT ); Tue, 8 Aug 2006 21:40:36 -0400 To: netdev@vger.kernel.org, John Linville Sender: netdev-owner@vger.kernel.org List-Id: netdev.vger.kernel.org Using the bcm43xx-d80211 driver/stack combination, my system will usually lock if the interface is plugged in while booting. On one occasion, it was able to boot with the following message in my logs. This was run with a non-premptible unit-processor x86 system. If you need further details, please let me know. ======================================================= kernel: [ INFO: possible circular locking dependency detected ] kernel: ------------------------------------------------------- kernel: dhcpcd/4627 is trying to acquire lock: kernel: (&dev->queue_lock){-+..}, at: [] dev_queue_xmit+0x56/0x290 kernel: kernel: but task is already holding lock: kernel: (&dev->_xmit_lock){-+..}, at: [] dev_queue_xmit+0x226/0x290 larrylap kernel: larrylap kernel: which lock already depends on the new lock. kernel: kernel: kernel: the existing dependency chain (in reverse order) is: kernel: kernel: -> #1 (&dev->_xmit_lock){-+..}: kernel: [] lock_acquire+0x5b/0x80 kernel: [] _spin_lock_bh+0x40/0x50 kernel: [] dev_activate+0x6c/0x130 kernel: [] dev_open+0x6b/0x90 kernel: [] ieee80211_open+0x18d/0x360 [80211] kernel: [] dev_open+0x43/0x90 kernel: [] dev_change_flags+0x55/0x130 kernel: [] devinet_ioctl+0x65f/0x6d0 kernel: [] inet_ioctl+0x88/0xb0 kernel: [] sock_ioctl+0xbb/0x260 kernel: [] do_ioctl+0x2b/0x80 kernel: [] vfs_ioctl+0x51/0x290 kernel: [] sys_ioctl+0x41/0x60 kernel: [] sysenter_past_esp+0x56/0x8d kernel: kernel: -> #0 (&dev->queue_lock){-+..}: kernel: [] lock_acquire+0x5b/0x80 kernel: [] _spin_lock+0x3b/0x50 kernel: [] dev_queue_xmit+0x56/0x290 kernel: [] ieee80211_subif_start_xmit+0x2df/0x540 [80211] kernel: [] dev_hard_start_xmit+0x142/0x240 kernel: [] dev_queue_xmit+0x244/0x290 kernel: [] packet_sendmsg_spkt+0x1c5/0x200 kernel: [] sock_sendmsg+0xda/0x110 kernel: [] sys_sendto+0xd3/0x100 kernel: [] sys_socketcall+0x192/0x260 kernel: [] sysenter_past_esp+0x56/0x8d kernel: kernel: other info that might help us debug this: kernel: kernel: 1 lock held by dhcpcd/4627: kernel: #0: (&dev->_xmit_lock){-+..}, at: [] dev_queue_xmit+0x226/0x290 kernel: kernel: stack backtrace: kernel: [] show_trace_log_lvl+0x197/0x1c0 kernel: [] show_trace+0x1b/0x20 kernel: [] dump_stack+0x26/0x30 kernel: [] print_circular_bug_tail+0x61/0x70 kernel: [] __lock_acquire+0xae0/0xd60 kernel: [] lock_acquire+0x5b/0x80 kernel: [] _spin_lock+0x3b/0x50 kernel: [] dev_queue_xmit+0x56/0x290 kernel: [] ieee80211_subif_start_xmit+0x2df/0x540 [80211] kernel: [] dev_hard_start_xmit+0x142/0x240 kernel: [] dev_queue_xmit+0x244/0x290 kernel: [] packet_sendmsg_spkt+0x1c5/0x200 kernel: [] sock_sendmsg+0xda/0x110 kernel: [] sys_sendto+0xd3/0x100 kernel: [] sys_socketcall+0x192/0x260 kernel: [] sysenter_past_esp+0x56/0x8d kernel: [] 0xb7f5a410 kernel: [] show_trace+0x1b/0x20 kernel: [] dump_stack+0x26/0x30 kernel: [] print_circular_bug_tail+0x61/0x70 kernel: [] __lock_acquire+0xae0/0xd60 kernel: [] lock_acquire+0x5b/0x80 kernel: [] _spin_lock+0x3b/0x50 kernel: [] dev_queue_xmit+0x56/0x290 kernel: [] ieee80211_subif_start_xmit+0x2df/0x540 [80211] kernel: [] dev_hard_start_xmit+0x142/0x240 kernel: [] dev_queue_xmit+0x244/0x290 kernel: [] packet_sendmsg_spkt+0x1c5/0x200 kernel: [] sock_sendmsg+0xda/0x110 kernel: [] sys_sendto+0xd3/0x100 kernel: [] sys_socketcall+0x192/0x260 kernel: [] sysenter_past_esp+0x56/0x8d