All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net 0/2] strparser: Fix lockdep issue
@ 2017-12-28 19:00 Tom Herbert
  2017-12-28 19:00 ` [PATCH net 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-28 19:00 UTC (permalink / raw)
  To: davem; +Cc: netdev, dvyukov, ozgur, rohit, Tom Herbert

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.

Fixes: 43a0c6751a322847 ("strparser: Stream parser for messages")
Reported-by: syzbot <syzkaller@googlegroups.com>
Reported-and-tested-by: <syzbot+c91c53af67f9ebe599a337d2e70950366153b295@syzkaller.appspotmail.com>

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

* [PATCH net 1/2] sock: Add sock_owned_by_user_nocheck
  2017-12-28 19:00 [PATCH net 0/2] strparser: Fix lockdep issue Tom Herbert
@ 2017-12-28 19:00 ` Tom Herbert
  2017-12-28 19:00 ` [PATCH net 2/2] strparser: Call sock_owned_by_user_nocheck Tom Herbert
  2017-12-28 19:29 ` [PATCH net 0/2] strparser: Fix lockdep issue David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Tom Herbert @ 2017-12-28 19:00 UTC (permalink / raw)
  To: davem; +Cc: netdev, dvyukov, ozgur, rohit, Tom Herbert

This allows checking socket lock ownership with producing lockdep
warnings.

Signed-off-by: Tom Herbert <tom@quantonium.net>
---
 include/net/sock.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/net/sock.h b/include/net/sock.h
index 9155da422692..7a7b14e9628a 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1514,6 +1514,11 @@ static inline bool sock_owned_by_user(const struct sock *sk)
 	return sk->sk_lock.owned;
 }
 
+static inline bool sock_owned_by_user_nocheck(const struct sock *sk)
+{
+	return sk->sk_lock.owned;
+}
+
 /* no reclassification while locks are held */
 static inline bool sock_allow_reclassification(const struct sock *csk)
 {
-- 
2.11.0

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

* [PATCH net 2/2] strparser: Call sock_owned_by_user_nocheck
  2017-12-28 19:00 [PATCH net 0/2] strparser: Fix lockdep issue Tom Herbert
  2017-12-28 19:00 ` [PATCH net 1/2] sock: Add sock_owned_by_user_nocheck Tom Herbert
@ 2017-12-28 19:00 ` Tom Herbert
  2017-12-28 19:29 ` [PATCH net 0/2] strparser: Fix lockdep issue David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Tom Herbert @ 2017-12-28 19:00 UTC (permalink / raw)
  To: davem; +Cc: netdev, dvyukov, ozgur, rohit, Tom Herbert

strparser wants to check socket ownership without producing any
warnings. As indicated by the comment in the code, it is permissible
for owned_by_user to return true.

Fixes: 43a0c6751a322847 ("strparser: Stream parser for messages")
Reported-by: syzbot <syzkaller@googlegroups.com>
Reported-and-tested-by: <syzbot+c91c53af67f9ebe599a337d2e70950366153b295@syzkaller.appspotmail.com>
Signed-off-by: Tom Herbert <tom@quantonium.net>
---
 net/strparser/strparser.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/strparser/strparser.c b/net/strparser/strparser.c
index c5fda15ba319..1fdab5c4eda8 100644
--- a/net/strparser/strparser.c
+++ b/net/strparser/strparser.c
@@ -401,7 +401,7 @@ void strp_data_ready(struct strparser *strp)
 	 * allows a thread in BH context to safely check if the process
 	 * lock is held. In this case, if the lock is held, queue work.
 	 */
-	if (sock_owned_by_user(strp->sk)) {
+	if (sock_owned_by_user_nocheck(strp->sk)) {
 		queue_work(strp_wq, &strp->work);
 		return;
 	}
-- 
2.11.0

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

* Re: [PATCH net 0/2] strparser: Fix lockdep issue
  2017-12-28 19:00 [PATCH net 0/2] strparser: Fix lockdep issue Tom Herbert
  2017-12-28 19:00 ` [PATCH net 1/2] sock: Add sock_owned_by_user_nocheck Tom Herbert
  2017-12-28 19:00 ` [PATCH net 2/2] strparser: Call sock_owned_by_user_nocheck Tom Herbert
@ 2017-12-28 19:29 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2017-12-28 19:29 UTC (permalink / raw)
  To: tom; +Cc: netdev, dvyukov, ozgur, rohit

From: Tom Herbert <tom@quantonium.net>
Date: Thu, 28 Dec 2017 11:00:42 -0800

> 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.
> 
> Fixes: 43a0c6751a322847 ("strparser: Stream parser for messages")
> Reported-by: syzbot <syzkaller@googlegroups.com>
> Reported-and-tested-by: <syzbot+c91c53af67f9ebe599a337d2e70950366153b295@syzkaller.appspotmail.com>

Series applied.

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

end of thread, other threads:[~2017-12-28 19:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-28 19:00 [PATCH net 0/2] strparser: Fix lockdep issue Tom Herbert
2017-12-28 19:00 ` [PATCH net 1/2] sock: Add sock_owned_by_user_nocheck Tom Herbert
2017-12-28 19:00 ` [PATCH net 2/2] strparser: Call sock_owned_by_user_nocheck Tom Herbert
2017-12-28 19:29 ` [PATCH net 0/2] strparser: Fix lockdep issue David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.