New bluetooth related lockdep warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I just got this lockdep warning on my system running a 5.16-rc3 kernel
(while using bluetooth headphones):

[   59.956325] ======================================================
[   59.956329] WARNING: possible circular locking dependency detected
[   59.956334] 5.16.0-rc3+ #662 Tainted: G        W   E    
[   59.956340] ------------------------------------------------------
[   59.956343] krfcommd/2230 is trying to acquire lock:
[   59.956349] ffff8dcfc4f78920 (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+.}-{0:0}, at: rfcomm_sk_state_change+0x4d/0x110 [rfcomm]
[   59.956386] 
               but task is already holding lock:
[   59.956390] ffff8dcf872cf328 (&d->lock){+.+.}-{3:3}, at: rfcomm_run+0x132d/0x1810 [rfcomm]
[   59.956417] 
               which lock already depends on the new lock.

[   59.956421] 
               the existing dependency chain (in reverse order) is:
[   59.956424] 
               -> #2 (&d->lock){+.+.}-{3:3}:
[   59.956436]        __mutex_lock+0x92/0x8a0
[   59.956450]        rfcomm_run+0x132d/0x1810 [rfcomm]
[   59.956469]        kthread+0x165/0x190
[   59.956478]        ret_from_fork+0x1f/0x30
[   59.956491] 
               -> #1 (rfcomm_mutex){+.+.}-{3:3}:
[   59.956502]        __mutex_lock+0x92/0x8a0
[   59.956511]        rfcomm_dlc_open+0x31/0x340 [rfcomm]
[   59.956529]        rfcomm_sock_connect+0xd3/0x130 [rfcomm]
[   59.956549]        __sys_connect+0x9f/0xd0
[   59.956561]        __x64_sys_connect+0x14/0x20
[   59.956571]        do_syscall_64+0x38/0x90
[   59.956579]        entry_SYSCALL_64_after_hwframe+0x44/0xae
[   59.956591] 
               -> #0 (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+.}-{0:0}:
[   59.956602]        __lock_acquire+0x1158/0x1de0
[   59.956610]        lock_acquire+0xb5/0x2b0
[   59.956616]        lock_sock_nested+0x2e/0x80
[   59.956625]        rfcomm_sk_state_change+0x4d/0x110 [rfcomm]
[   59.956644]        rfcomm_run+0x1346/0x1810 [rfcomm]
[   59.956661]        kthread+0x165/0x190
[   59.956668]        ret_from_fork+0x1f/0x30
[   59.956677] 
               other info that might help us debug this:

[   59.956681] Chain exists of:
                 sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM --> rfcomm_mutex --> &d->lock

[   59.956694]  Possible unsafe locking scenario:

[   59.956698]        CPU0                    CPU1
[   59.956701]        ----                    ----
[   59.956704]   lock(&d->lock);
[   59.956710]                                lock(rfcomm_mutex);
[   59.956716]                                lock(&d->lock);
[   59.956722]   lock(sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM);
[   59.956728] 
                *** DEADLOCK ***

[   59.956731] 2 locks held by krfcommd/2230:
[   59.956737]  #0: ffffffffc1796108 (rfcomm_mutex){+.+.}-{3:3}, at: rfcomm_run+0x135/0x1810 [rfcomm]
[   59.956776]  #1: ffff8dcf872cf328 (&d->lock){+.+.}-{3:3}, at: rfcomm_run+0x132d/0x1810 [rfcomm]
[   59.956817] 
               stack backtrace:
[   59.956823] CPU: 5 PID: 2230 Comm: krfcommd Tainted: G        W   E     5.16.0-rc3+ #662
[   59.956833] Hardware name: LENOVO 20U90SIT19/20U90SIT19, BIOS N2WET30W (1.20 ) 08/26/2021
[   59.956838] Call Trace:
[   59.956844]  <TASK>
[   59.956851]  dump_stack_lvl+0x59/0x73
[   59.956864]  check_noncircular+0xde/0x100
[   59.956877]  ? __lock_acquire+0xf7e/0x1de0
[   59.956889]  __lock_acquire+0x1158/0x1de0
[   59.956898]  ? lock_is_held_type+0xa8/0x120
[   59.956911]  lock_acquire+0xb5/0x2b0
[   59.956918]  ? rfcomm_sk_state_change+0x4d/0x110 [rfcomm]
[   59.956937]  ? rfcomm_run+0x132d/0x1810 [rfcomm]
[   59.956955]  lock_sock_nested+0x2e/0x80
[   59.956963]  ? rfcomm_sk_state_change+0x4d/0x110 [rfcomm]
[   59.956979]  rfcomm_sk_state_change+0x4d/0x110 [rfcomm]
[   59.956996]  rfcomm_run+0x1346/0x1810 [rfcomm]
[   59.957015]  ? __init_waitqueue_head+0x60/0x60
[   59.957031]  ? _raw_spin_unlock_irqrestore+0x2d/0x50
[   59.957044]  ? rfcomm_check_accept+0xa0/0xa0 [rfcomm]
[   59.957060]  kthread+0x165/0x190
[   59.957068]  ? set_kthread_struct+0x40/0x40
[   59.957076]  ret_from_fork+0x1f/0x30
[   59.957094]  </TASK>
[   60.547040] input: Bose QC35 II (AVRCP) as /devices/virtual/input/input58

Regards,

Hans





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux