* [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.