if (nft_trans_chain_update(trans)) {
                                nf_tables_chain_notify(&trans->ctx, NFT_MSG_DELCHAIN,
                                                       &nft_trans_chain_hooks(trans));
-                               nft_netdev_unregister_hooks(net,
-                                                           &nft_trans_chain_hooks(trans),
-                                                           true);
+                               if (!(trans->ctx.table->flags & NFT_TABLE_F_DORMANT)) {
+                                       nft_netdev_unregister_hooks(net,
+                                                                   &nft_trans_chain_hooks(trans),
+                                                                   true);
+                               }
                        } else {
                                nft_chain_del(trans->ctx.chain);
                                nf_tables_chain_notify(&trans->ctx, NFT_MSG_DELCHAIN,
                        break;
                case NFT_MSG_NEWCHAIN:
                        if (nft_trans_chain_update(trans)) {
-                               nft_netdev_unregister_hooks(net,
-                                                           &nft_trans_chain_hooks(trans),
-                                                           true);
+                               if (!(trans->ctx.table->flags & NFT_TABLE_F_DORMANT)) {
+                                       nft_netdev_unregister_hooks(net,
+                                                                   &nft_trans_chain_hooks(trans),
+                                                                   true);
+                               }
                                free_percpu(nft_trans_chain_stats(trans));
                                kfree(nft_trans_chain_name(trans));
                                nft_trans_destroy(trans);