This starts to simplify the extension infra. Should have no impact on functionality. Extension IDs already need compile-time allocation, the dynamic registration isn't necessary, just place the sizes in the extension core and handle the only instance of the ->destroy hook manually. Also avoids the ->destroy hook invocation during ct destruction if the conntrack wasn't added to the bysource hash list. Florian Westphal (4): netfilter: conntrack: make all extensions 8-byte alignned netfilter: conntrack: move extension sizes into core netfilter: conntrack: hande ->destroy hook via nat_ops instead netfilter: conntrack: remove extension register api include/linux/netfilter.h | 1 + include/net/netfilter/nf_conntrack_acct.h | 1 - include/net/netfilter/nf_conntrack_ecache.h | 13 -- include/net/netfilter/nf_conntrack_extend.h | 18 +-- include/net/netfilter/nf_conntrack_labels.h | 3 - include/net/netfilter/nf_conntrack_seqadj.h | 3 - include/net/netfilter/nf_conntrack_timeout.h | 12 -- .../net/netfilter/nf_conntrack_timestamp.h | 13 -- net/netfilter/nf_conntrack_acct.c | 19 --- net/netfilter/nf_conntrack_core.c | 94 ++----------- net/netfilter/nf_conntrack_ecache.c | 24 +--- net/netfilter/nf_conntrack_extend.c | 132 ++++++++++-------- net/netfilter/nf_conntrack_helper.c | 17 --- net/netfilter/nf_conntrack_labels.c | 20 +-- net/netfilter/nf_conntrack_seqadj.c | 16 --- net/netfilter/nf_conntrack_timeout.c | 19 --- net/netfilter/nf_conntrack_timestamp.c | 20 --- net/netfilter/nf_nat_core.c | 28 +--- net/netfilter/nf_synproxy_core.c | 24 +--- net/sched/act_ct.c | 13 -- 20 files changed, 95 insertions(+), 395 deletions(-) -- 2.34.1