]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.4.181/net-avoid-weird-emergency-message.patch
Linux 4.4.181
[thirdparty/kernel/stable-queue.git] / releases / 4.4.181 / net-avoid-weird-emergency-message.patch
1 From foo@baz Wed 22 May 2019 07:38:16 PM CEST
2 From: Eric Dumazet <edumazet@google.com>
3 Date: Thu, 16 May 2019 08:09:57 -0700
4 Subject: net: avoid weird emergency message
5
6 From: Eric Dumazet <edumazet@google.com>
7
8 [ Upstream commit d7c04b05c9ca14c55309eb139430283a45c4c25f ]
9
10 When host is under high stress, it is very possible thread
11 running netdev_wait_allrefs() returns from msleep(250)
12 10 seconds late.
13
14 This leads to these messages in the syslog :
15
16 [...] unregister_netdevice: waiting for syz_tun to become free. Usage count = 0
17
18 If the device refcount is zero, the wait is over.
19
20 Signed-off-by: Eric Dumazet <edumazet@google.com>
21 Reported-by: syzbot <syzkaller@googlegroups.com>
22 Signed-off-by: David S. Miller <davem@davemloft.net>
23 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
24 ---
25 net/core/dev.c | 2 +-
26 1 file changed, 1 insertion(+), 1 deletion(-)
27
28 --- a/net/core/dev.c
29 +++ b/net/core/dev.c
30 @@ -6986,7 +6986,7 @@ static void netdev_wait_allrefs(struct n
31
32 refcnt = netdev_refcnt_read(dev);
33
34 - if (time_after(jiffies, warning_time + 10 * HZ)) {
35 + if (refcnt && time_after(jiffies, warning_time + 10 * HZ)) {
36 pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
37 dev->name, refcnt);
38 warning_time = jiffies;