aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/Documentation/networking
diff options
context:
space:
mode:
authorStijn Tintel <stijn@linux-ipv6.be>2017-02-22 11:42:36 +0100
committerStijn Tintel <stijn@linux-ipv6.be>2017-02-22 11:56:27 +0100
commit5c49fecf72c9c10b1d302b0a9d4db3b4ce3c782c (patch)
treef597c05295513acd0b865f1ef60eaa130b6e60c6 /target/linux/generic/files/Documentation/networking
parente01b034cdc64123baaca8d15f15b2b90e8a39db9 (diff)
downloadupstream-5c49fecf72c9c10b1d302b0a9d4db3b4ce3c782c.tar.gz
upstream-5c49fecf72c9c10b1d302b0a9d4db3b4ce3c782c.tar.bz2
upstream-5c49fecf72c9c10b1d302b0a9d4db3b4ce3c782c.zip
Revert "kernel: ar8327/ar8337: disable ARL access code to avoid lockups (FS#384)"
This reverts commit ec1a695daa7390a6c24e3b28d3956f194cba2cb5. Revert the workaround, the problem was properly fixed in 237454991618e0e8b7ceb8a8a2a43fca12c1a454. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Diffstat (limited to 'target/linux/generic/files/Documentation/networking')
0 files changed, 0 insertions, 0 deletions
ff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 9 May 2015 23:03:47 +0200
Subject: [PATCH] pppoe: drop pppoe device in pppoe_unbind_sock_work

After receiving a PADT and the socket is closed, user space will no
longer drop the reference to the pppoe device.
This leads to errors like this:

[  488.570000] unregister_netdevice: waiting for eth0.2 to become free. Usage count = 2

Fixes: 287f3a943fe ("pppoe: Use workqueue to die properly when a PADT is received")
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---

--- a/drivers/net/ppp/pppoe.c
+++ b/drivers/net/ppp/pppoe.c
@@ -462,6 +462,10 @@ static void pppoe_unbind_sock_work(struc
 	struct sock *sk = sk_pppox(po);
 
 	lock_sock(sk);
+	if (po->pppoe_dev) {
+		dev_put(po->pppoe_dev);
+		po->pppoe_dev = NULL;
+	}
 	pppox_unbind_sock(sk);
 	release_sock(sk);
 	sock_put(sk);