Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> wrote: > > mutex_unlock(&nft_net->commit_mutex); > > + > > + cancel_work_sync(&nft_net->destroy_work); > > __nft_release_tables() is called in this nf_tables_exit_net() > function, cancel_work_sync() needs to be called before it? Yep, thanks. Will fix in v2. > > @@ -12029,10 +12036,8 @@ static void __exit nf_tables_module_exit(void) > > unregister_netdevice_notifier(&nf_tables_flowtable_notifier); > > nft_chain_filter_fini(); > > nft_chain_route_fini(); > > - nf_tables_trans_destroy_flush_work(); > > My understanding is that this is not required anymore because of the > new cancel_work_sync() in the exit_net() path? Right, the flush now needs to be done in exit_net and it happens as part of the cancel_work_sync call.