Re: [PATCH net-next v2 04/12] net: tunnel: add skb_vlan_inet_prepare_reason() helper
From: Alexander Lobakin <aleksander.lobakin@intel.com>
Date: 2024-08-30 14:47:52
Also in:
lkml
From: Menglong Dong <redacted> Date: Fri, 30 Aug 2024 09:59:53 +0800
quoted hunk ↗ jump to hunk
Introduce the function skb_vlan_inet_prepare_reason() and make skb_vlan_inet_prepare an inline call to it. The drop reasons of it just come from pskb_may_pull_reason. Signed-off-by: Menglong Dong <redacted> --- include/net/ip_tunnels.h | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-)diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index 7fc2f7bf837a..90f8d1510a76 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h@@ -465,13 +465,14 @@ static inline bool pskb_inet_may_pull(struct sk_buff *skb) return pskb_inet_may_pull_reason(skb) == SKB_NOT_DROPPED_YET; } -/* Variant of pskb_inet_may_pull(). +/* Variant of pskb_inet_may_pull_reason(). */ -static inline bool skb_vlan_inet_prepare(struct sk_buff *skb, - bool inner_proto_inherit) +static inline enum skb_drop_reason +skb_vlan_inet_prepare_reason(struct sk_buff *skb, bool inner_proto_inherit) { int nhlen = 0, maclen = inner_proto_inherit ? 0 : ETH_HLEN; __be16 type = skb->protocol; + enum skb_drop_reason reason; /* Essentially this is skb_protocol(skb, true) * And we get MAC len.@@ -492,11 +493,19 @@ static inline bool skb_vlan_inet_prepare(struct sk_buff *skb, /* For ETH_P_IPV6/ETH_P_IP we make sure to pull * a base network header in skb->head. */ - if (!pskb_may_pull(skb, maclen + nhlen)) - return false; + reason = pskb_may_pull_reason(skb, maclen + nhlen); + if (reason) + return reason; skb_set_network_header(skb, maclen); - return true; + return SKB_NOT_DROPPED_YET;
An empty newline before the return as we usually do?
+}
+
+static inline bool skb_vlan_inet_prepare(struct sk_buff *skb,
+ bool inner_proto_inherit)
+{
+ return skb_vlan_inet_prepare_reason(skb, inner_proto_inherit) ==
+ SKB_NOT_DROPPED_YET;This line must be aligned to skb_vlan_blah, IOW you need 7 spaces, not 1 tab here.
} static inline int ip_encap_hlen(struct ip_tunnel_encap *e)
Thanks, Olek