This patch looks nice now. One more change and we go:
On Tue, Jun 18, 2019 at 04:32:50PM +0800, xiao ruizhu wrote: > diff --git a/net/netfilter/nf_conntrack_expect.c > b/net/netfilter/nf_conntrack_expect.c > index 59c1880..7df6228 100644 > --- a/net/netfilter/nf_conntrack_expect.c > +++ b/net/netfilter/nf_conntrack_expect.c > @@ -252,13 +252,22 @@ static inline int expect_clash(const struct > nf_conntrack_expect *a, > static inline int expect_matches(const struct nf_conntrack_expect *a, > const struct nf_conntrack_expect *b) > { > - return a->master == b->master && > - nf_ct_tuple_equal(&a->tuple, &b->tuple) && > + return nf_ct_tuple_equal(&a->tuple, &b->tuple) && > nf_ct_tuple_mask_equal(&a->mask, &b->mask) && > net_eq(nf_ct_net(a->master), nf_ct_net(b->master)) && > nf_ct_zone_equal_any(a->master, nf_ct_zone(b->master)); > } > > +static bool master_matches(const struct nf_conntrack_expect *a, > + const struct nf_conntrack_expect *b, > + unsigned int flags) > +{ > + if (flags & NF_CT_EXP_F_CHECK_MASTER) rename this to NF_CT_EXP_F_SKIP_MASTER. Since semantics here is to skip the master check, rather than checking for it. > + return true; > + > + return a->master == b->master; > +} Thanks.