netfilter: nf_tables_offload: Check for the NETDEV_UNREGISTER event
authorwenxu <wenxu@ucloud.cn>
Wed, 13 Nov 2019 04:21:07 +0000 (12:21 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Jan 2020 11:21:14 +0000 (12:21 +0100)
[ Upstream commit d1f4c966475c6dd2545c6625022cb24e878bee11 ]

Check for the NETDEV_UNREGISTER event from the nft_offload_netdev_event
function, which is the event that actually triggers the clean up.

Fixes: 06d392cbe3db ("netfilter: nf_tables_offload: remove rules when the device unregisters")
Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/netfilter/nf_tables_offload.c

index 5f6037695dee9c47e966877eb83546df80d043d9..6f7eab502e6523a3cc4fdbae4c87b2e0e74b53f9 100644 (file)
@@ -446,6 +446,9 @@ static int nft_offload_netdev_event(struct notifier_block *this,
        struct net *net = dev_net(dev);
        struct nft_chain *chain;
 
+       if (event != NETDEV_UNREGISTER)
+               return NOTIFY_DONE;
+
        mutex_lock(&net->nft.commit_mutex);
        chain = __nft_offload_get_chain(dev);
        if (chain)