In the Linux kernel, the following vulnerability has been resolved:
net: wan: fslqmchdlc: Convert carrier_lock spinlock to a mutex
The carrierlock spinlock protects the carrier detection. While it is held, framerget_status() is called which in turn takes a mutex. This is not correct and can lead to a deadlock.
A run with PROVELOCKING enabled detected the issue: [ BUG: Invalid wait context ] ... c204ddbc (&framer->mutex){+.+.}-{3:3}, at: framergetstatus+0x40/0x78 other info that might help us debug this: context-{4:4} 2 locks held by ifconfig/146: #0: c0926a38 (rtnlmutex){+.+.}-{3:3}, at: devinetioctl+0x12c/0x664 #1: c2006a40 (&qmchdlc->carrierlock){....}-{2:2}, at: qmchdlcframerset_carrier+0x30/0x98
Avoid the spinlock usage and convert carrier_lock to a mutex.