netfilter: add nf_ingress_hook() helper function

Add helper function to check if this is an ingress hook.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Pablo Neira Ayuso 2020-10-08 01:14:46 +02:00
parent afd9024cd1
commit ddcfa710d4
1 changed files with 7 additions and 2 deletions

View File

@ -311,6 +311,11 @@ nf_hook_entry_head(struct net *net, int pf, unsigned int hooknum,
return NULL; return NULL;
} }
static inline bool nf_ingress_hook(const struct nf_hook_ops *reg, int pf)
{
return pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS;
}
static void nf_static_key_inc(const struct nf_hook_ops *reg, int pf) static void nf_static_key_inc(const struct nf_hook_ops *reg, int pf)
{ {
#ifdef CONFIG_JUMP_LABEL #ifdef CONFIG_JUMP_LABEL
@ -359,7 +364,7 @@ static int __nf_register_net_hook(struct net *net, int pf,
hooks_validate(new_hooks); hooks_validate(new_hooks);
#ifdef CONFIG_NETFILTER_INGRESS #ifdef CONFIG_NETFILTER_INGRESS
if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS) if (nf_ingress_hook(reg, pf))
net_inc_ingress_queue(); net_inc_ingress_queue();
#endif #endif
nf_static_key_inc(reg, pf); nf_static_key_inc(reg, pf);
@ -416,7 +421,7 @@ static void __nf_unregister_net_hook(struct net *net, int pf,
if (nf_remove_net_hook(p, reg)) { if (nf_remove_net_hook(p, reg)) {
#ifdef CONFIG_NETFILTER_INGRESS #ifdef CONFIG_NETFILTER_INGRESS
if (pf == NFPROTO_NETDEV && reg->hooknum == NF_NETDEV_INGRESS) if (nf_ingress_hook(reg, pf))
net_dec_ingress_queue(); net_dec_ingress_queue();
#endif #endif
nf_static_key_dec(reg, pf); nf_static_key_dec(reg, pf);