Re: Deadlock in n_hdlc_buf_put

From: Jiri Slaby
Date: Thu Nov 26 2015 - 13:17:56 EST


On 11/26/2015, 01:37 PM, Dmitry Vyukov wrote:
> [ 341.376188] =============================================
> [ 341.376607] [ INFO: possible recursive locking detected ]
> [ 341.376607] 4.4.0-rc1+ #117 Not tainted
> [ 341.376607] ---------------------------------------------
> [ 341.376607] syzkaller_execu/14066 is trying to acquire lock:
> [ 341.376607] (&(&list->spinlock)->rlock){......}, at:
> [<ffffffff82a9f548>] n_hdlc_buf_put+0x28/0x170
> [ 341.376607]
> [ 341.376607] but task is already holding lock:
> [ 341.376607] (&(&list->spinlock)->rlock){......}, at:
> [<ffffffff82aa1368>] n_hdlc_tty_ioctl+0x2b8/0x3f0
> [ 341.376607]
> [ 341.376607] other info that might help us debug this:
> [ 341.376607] Possible unsafe locking scenario:
> [ 341.376607]
> [ 341.376607] CPU0
> [ 341.376607] ----
> [ 341.376607] lock(&(&list->spinlock)->rlock);
> [ 341.376607] lock(&(&list->spinlock)->rlock);

Hi,

this is a lockdep false positive. The first one is tx_buf_list.spinlock,
the latter tx_free_buf_list.spinlock, both in flush_tx_queue. So we need
a lockdep annotation here.

thanks,
--
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/