diff --git a/net/netfilter/nft_chain_filter.c b/net/netfilter/nft_chain_filter.c index a18582a4ecf347396e4b60d17e24b48811dead3c..aad676402919b26bd5c4023863d57cb3c770c0b9 100644 --- a/net/netfilter/nft_chain_filter.c +++ b/net/netfilter/nft_chain_filter.c @@ -339,7 +339,9 @@ static void nft_netdev_event(unsigned long event, struct net_device *dev, return; if (n > 1) { - nf_unregister_net_hook(ctx->net, &found->ops); + if (!(ctx->chain->table->flags & NFT_TABLE_F_DORMANT)) + nf_unregister_net_hook(ctx->net, &found->ops); + list_del_rcu(&found->list); kfree_rcu(found, rcu); return;