Netdev List
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/2] kcm: Fix two locking issues
@ 2017-12-23 17:17 Tom Herbert
  2017-12-23 17:17 ` [PATCH v2 net-next 1/2] sock: Add sock_owned_by_user_nocheck Tom Herbert
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Tom Herbert @ 2017-12-23 17:17 UTC (permalink / raw)
  To: davem; +Cc: netdev, dvyukov, rohit, Tom Herbert

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-27 21:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-23 17:17 [PATCH v2 net-next 0/2] kcm: Fix two locking issues Tom Herbert
2017-12-23 17:17 ` [PATCH v2 net-next 1/2] sock: Add sock_owned_by_user_nocheck Tom Herbert
2017-12-23 17:17 ` [PATCH v2 net-next 2/2] strparser: Call sock_owned_by_user_nocheck Tom Herbert
2017-12-27 21:56 ` [PATCH v2 net-next 0/2] kcm: Fix two locking issues David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox