From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 23 Jan 2012 11:12:51 +0200 From: Johan Hedberg To: Marcel Holtmann Cc: Octavian Purdila , linux-bluetooth@vger.kernel.org, kirill.shutemov@linux.intel.com, Octavian Purdila Subject: Re: [PATCH v4] Bluetooth: silence lockdep warning Message-ID: <20120123091251.GD8800@x220> References: <1327184914-2902-1-git-send-email-octavian.purdila@intel.com> <1327224111.1955.72.camel@aeonflux> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <1327224111.1955.72.camel@aeonflux> List-ID: Hi, On Sun, Jan 22, 2012, Marcel Holtmann wrote: > > Since bluetooth uses multiple protocols types, to avoid lockdep > > warnings, we need to use different lockdep classes (one for each > > protocol type). > > > > This is already done in bt_sock_create but it misses a couple of cases > > when new connections are created. This patch corrects that to fix the > > following warning: > > > > <4>[ 1864.732366] ======================================================= > > <4>[ 1864.733030] [ INFO: possible circular locking dependency detected ] > > <4>[ 1864.733544] 3.0.16-mid3-00007-gc9a0f62 #3 > > <4>[ 1864.733883] ------------------------------------------------------- > > <4>[ 1864.734408] t.android.btclc/4204 is trying to acquire lock: > > <4>[ 1864.734869] (rfcomm_mutex){+.+.+.}, at: [] rfcomm_dlc_close+0x15/0x30 > > <4>[ 1864.735541] > > <4>[ 1864.735549] but task is already holding lock: > > <4>[ 1864.736045] (sk_lock-AF_BLUETOOTH){+.+.+.}, at: [] lock_sock+0xa/0xc > > <4>[ 1864.736732] > > <4>[ 1864.736740] which lock already depends on the new lock. > > <4>[ 1864.736750] > > <4>[ 1864.737428] > > <4>[ 1864.737437] the existing dependency chain (in reverse order) is: > > <4>[ 1864.738016] > > <4>[ 1864.738023] -> #1 (sk_lock-AF_BLUETOOTH){+.+.+.}: > > <4>[ 1864.738549] [] lock_acquire+0x104/0x140 > > <4>[ 1864.738977] [] lock_sock_nested+0x58/0x68 > > <4>[ 1864.739411] [] l2cap_sock_sendmsg+0x3e/0x76 > > <4>[ 1864.739858] [] __sock_sendmsg+0x50/0x59 > > <4>[ 1864.740279] [] sock_sendmsg+0x94/0xa8 > > <4>[ 1864.740687] [] kernel_sendmsg+0x28/0x37 > > <4>[ 1864.741106] [] rfcomm_send_frame+0x30/0x38 > > <4>[ 1864.741542] [] rfcomm_send_ua+0x58/0x5a > > <4>[ 1864.741959] [] rfcomm_run+0x441/0xb52 > > <4>[ 1864.742365] [] kthread+0x63/0x68 > > <4>[ 1864.742742] [] kernel_thread_helper+0x6/0xd > > <4>[ 1864.743187] > > <4>[ 1864.743193] -> #0 (rfcomm_mutex){+.+.+.}: > > <4>[ 1864.743667] [] __lock_acquire+0x988/0xc00 > > <4>[ 1864.744100] [] lock_acquire+0x104/0x140 > > <4>[ 1864.744519] [] __mutex_lock_common+0x3b/0x33f > > <4>[ 1864.744975] [] mutex_lock_nested+0x2d/0x36 > > <4>[ 1864.745412] [] rfcomm_dlc_close+0x15/0x30 > > <4>[ 1864.745842] [] __rfcomm_sock_close+0x5f/0x6b > > <4>[ 1864.746288] [] rfcomm_sock_shutdown+0x2f/0x62 > > <4>[ 1864.746737] [] sys_socketcall+0x1db/0x422 > > <4>[ 1864.747165] [] syscall_call+0x7/0xb > > > > Signed-off-by: Octavian Purdila > > --- > > include/net/bluetooth/bluetooth.h | 2 ++ > > net/bluetooth/af_bluetooth.c | 12 +++++------- > > net/bluetooth/l2cap_sock.c | 2 ++ > > net/bluetooth/rfcomm/sock.c | 2 ++ > > 4 files changed, 11 insertions(+), 7 deletions(-) > > Acked-by: Marcel Holtmann Applied. Thanks. Johan