diff --git a/target/linux/generic/hack-5.19/952-add-net-conntrack-events-support-multiple-registrant.patch b/target/linux/generic/hack-5.19/952-add-net-conntrack-events-support-multiple-registrant.patch index 71d304ef0..acf8deb7d 100644 --- a/target/linux/generic/hack-5.19/952-add-net-conntrack-events-support-multiple-registrant.patch +++ b/target/linux/generic/hack-5.19/952-add-net-conntrack-events-support-multiple-registrant.patch @@ -53,32 +53,31 @@ Signed-off-by: Zhi Chen e = nf_ct_ecache_find(ct); if (e == NULL) -@@ -128,10 +135,12 @@ nf_conntrack_event_report(enum ip_conntr +@@ -117,20 +124,24 @@ u32 portid, int report) { #ifdef CONFIG_NF_CONNTRACK_EVENTS +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS - const struct net *net = nf_ct_net(ct); - - if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) - return 0; + if (nf_ct_ecache_exist(ct)) + return nf_conntrack_eventmask_report(1 << event, ct, portid, report); + #endif + return 0; +#endif + } - return nf_conntrack_eventmask_report(1 << event, ct, portid, report); - #else -@@ -143,10 +152,12 @@ static inline int + static inline int nf_conntrack_event(enum ip_conntrack_events event, struct nf_conn *ct) { #ifdef CONFIG_NF_CONNTRACK_EVENTS +#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS - const struct net *net = nf_ct_net(ct); - - if (!rcu_access_pointer(net->ct.nf_conntrack_event_cb)) - return 0; + if (nf_ct_ecache_exist(ct)) + return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); + #endif + return 0; +#endif + } - return nf_conntrack_eventmask_report(1 << event, ct, 0, 0); - #else + #ifdef CONFIG_NF_CONNTRACK_EVENTS --- a/include/net/netns/conntrack.h +++ b/include/net/netns/conntrack.h @@ -112,6 +112,9 @@ struct netns_ct {