diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c index 84f61b905a..335b55548b 100644 --- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c +++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c @@ -726,6 +726,12 @@ static inline void hnat_set_alg(const struct nf_hook_state *state, skb_hnat_alg(skb) = val; } +static inline void hnat_set_tag(const struct nf_hook_state *state, + struct sk_buff *skb, int val) +{ + skb_hnat_magic_tag(skb) = val; +} + static inline void hnat_set_head_frags(const struct nf_hook_state *state, struct sk_buff *head_skb, int val, void (*fn)(const struct nf_hook_state *state, @@ -991,8 +997,8 @@ mtk_hnat_ipv6_nf_pre_routing(void *priv, struct sk_buff *skb, goto drop; if (!IS_WHNAT(state->in) && IS_EXT(state->in) && IS_SPACE_AVAILABLE_HEAD(skb)) { - skb_hnat_alg(skb) = 0; - skb_hnat_magic_tag(skb) = HNAT_MAGIC_TAG; + hnat_set_head_frags(state, skb, 0, hnat_set_alg); + hnat_set_head_frags(state, skb, HNAT_MAGIC_TAG, hnat_set_alg); } if (!is_magic_tag_valid(skb)) @@ -1065,8 +1071,8 @@ mtk_hnat_ipv4_nf_pre_routing(void *priv, struct sk_buff *skb, if (!IS_WHNAT(state->in) && IS_EXT(state->in) && IS_SPACE_AVAILABLE_HEAD(skb)) { - skb_hnat_alg(skb) = 0; - skb_hnat_magic_tag(skb) = HNAT_MAGIC_TAG; + hnat_set_head_frags(state, skb, 0, hnat_set_alg); + hnat_set_head_frags(state, skb, HNAT_MAGIC_TAG, hnat_set_alg); } if (!is_magic_tag_valid(skb)) @@ -1127,8 +1133,8 @@ mtk_hnat_br_nf_local_in(void *priv, struct sk_buff *skb, goto drop; if (!IS_WHNAT(state->in) && IS_EXT(state->in) && IS_SPACE_AVAILABLE_HEAD(skb)) { - skb_hnat_alg(skb) = 0; - skb_hnat_magic_tag(skb) = HNAT_MAGIC_TAG; + hnat_set_head_frags(state, skb, 0, hnat_set_alg); + hnat_set_head_frags(state, skb, HNAT_MAGIC_TAG, hnat_set_alg); } if (!is_magic_tag_valid(skb)) @@ -2699,4 +2705,3 @@ int mtk_hqos_ptype_cb(struct sk_buff *skb, struct net_device *dev, return 0; } -