Skip to contentSkip to conversation

Patch "packet: call fanout_release, while UNREGISTERING a netdev" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Nov 10, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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