From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Herbert Subject: [PATCH v2 net-next 0/2] kcm: Fix two locking issues Date: Sat, 23 Dec 2017 09:17:14 -0800 Message-ID: <20171223171716.16130-1-tom@quantonium.net> Cc: netdev@vger.kernel.org, dvyukov@google.com, rohit@quantonium.net, Tom Herbert To: davem@davemloft.net Return-path: Received: from mail-pg0-f52.google.com ([74.125.83.52]:41219 "EHLO mail-pg0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753091AbdLWRRg (ORCPT ); Sat, 23 Dec 2017 12:17:36 -0500 Received: by mail-pg0-f52.google.com with SMTP id 77so2268386pgd.8 for ; Sat, 23 Dec 2017 09:17:35 -0800 (PST) Sender: netdev-owner@vger.kernel.org List-ID: One issue is lockdep warnings when sock_owned_by_user returns true in strparser. Fix is to add and call sock_owned_by_user_nocheck since the check for owned by user is not an error condition in this case. The other issue is a potential deadlock between TX and RX paths KCM socket lock and the psock socket lock are acquired in both the RX and TX path, however they take the locks in opposite order which can lead to deadlock. The fix is to add try_sock_lock to see if psock socket lock can get acquired in the TX path with KCM lock held. If not, then KCM socket is released and the psock socket lock and KCM socket lock are acquired in the same order as the RX path. Tested: Ran KCM traffic without incident. v2: Remove patches to address potential deadlock. I couldn't convince myself this is an issue after looking at the code some more. Tom Herbert (2): sock: Add sock_owned_by_user_nocheck strparser: Call sock_owned_by_user_nocheck include/net/sock.h | 5 +++++ net/strparser/strparser.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) -- 2.11.0