Patch "packet: call fanout_release, while UNREGISTERING a netdev" has been added to the 4.8-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
packet: call fanout_release, while UNREGISTERING a netdev
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
packet-call-fanout_release-while-unregistering-a-netdev.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Nov 10 16:43:03 CET 2016
From: Anoob Soman <[email protected]>
Date: Wed, 5 Oct 2016 15:12:54 +0100
Subject: packet: call fanout_release, while UNREGISTERING a netdev
From: Anoob Soman <[email protected]>
[ Upstream commit 6664498280cf17a59c3e7cf1a931444c02633ed1 ]
If a socket has FANOUT sockopt set, a new proto_hook is registered as part of fanout_add(). When processing a NETDEV_UNREGISTER event in af_packet, __fanout_unlink is called for all sockets, but prot_hook which was registered as part of fanout_add is not removed. Call fanout_release, on a NETDEV_UNREGISTER, which removes prot_hook and removes fanout from the fanout_list.
This fixes BUG_ON(!list_empty(&dev->ptype_specific)) in netdev_run_todo()
--- net/packet/af_packet.c | 1 + 1 file changed, 1 insertion(+)
net/packet/af_packet.c +1 -0
@@ -3952,6 +3952,7 @@ static int packet_notifier(struct notifi }if (msg ==NETDEV_UNREGISTER ) {packet_cached_dev_reset (po); +fanout_release (sk); po->ifindex =-1 ;if (po->prot_hook.dev)dev_put (po->prot_hook.dev);
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/packet-call-fanout_release-while-unregistering-a-netdev.patch