summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2019-01-24 03:07:02 -0800
committerMichael Bestas <mkbestas@lineageos.org>2022-04-19 00:51:49 +0300
commitae1bab40b111b3770616b4d4b4bd8ae42c69c958 (patch)
treef71aece1ee3f9c42cae4d920585e86b5d4d4a427
parent190a838d3efd150134bfc355b9a2f70c75eff80e (diff)
BACKPORT: net: dev_is_mac_header_xmit() true for ARPHRD_RAWIP
__bpf_redirect() and act_mirred checks this boolean to determine whether to prefix an ethernet header. Signed-off-by: Maciej Żenczykowski <maze@google.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net> Note: this is commit 3b707c3008cad04604c1f50e39f456621821c414 upstream, but it does not trivially cherrypick to 4.9, because the function does not yet exist, and because ARPHRD_RAWIP is not yet defined. However, ARPHRD_RAWIP does exist in many device kernels, so by hiding it in #ifdef/#endif clause, we fix any device kernels which merge common. Bug: 65674744 Change-Id: I79a14d064738805f4c82612b020406cd75eb872c
-rw-r--r--net/core/filter.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/filter.c b/net/core/filter.c
index 790e912fb260..fb029c3685ef 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -1711,6 +1711,9 @@ static int __bpf_redirect(struct sk_buff *skb, struct net_device *dev,
case ARPHRD_IPGRE:
case ARPHRD_VOID:
case ARPHRD_NONE:
+#ifdef ARPHRD_RAWIP
+ case ARPHRD_RAWIP:
+#endif
return __bpf_redirect_no_mac(skb, dev, flags);
default:
return __bpf_redirect_common(skb, dev, flags);