netfilter: conntrack: don't cache nlattr_tuple_size result in nla_size
We currently call ->nlattr_tuple_size() once at register time and cache result in l4proto->nla_size. nla_size is the only member that is written to, avoiding this would allow to make l4proto trackers const. We can use ->nlattr_tuple_size() at run time, and cache result in the individual trackers instead. This is an intermediate step, next patch removes nlattr_size() callback and computes size at compile time, then removes nla_size. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:

zatwierdzone przez
Pablo Neira Ayuso

rodzic
7f4dae2d7f
commit
5caaed151a
@@ -259,9 +259,14 @@ static int icmpv6_nlattr_to_tuple(struct nlattr *tb[],
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int icmpv6_nlattr_tuple_size(void)
|
||||
static unsigned int icmpv6_nlattr_tuple_size(void)
|
||||
{
|
||||
return nla_policy_len(icmpv6_nla_policy, CTA_PROTO_MAX + 1);
|
||||
static unsigned int size __read_mostly;
|
||||
|
||||
if (!size)
|
||||
size = nla_policy_len(icmpv6_nla_policy, CTA_PROTO_MAX + 1);
|
||||
|
||||
return size;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user