Re: [PATCH v2 net-next] net: bridge: change return type of br_handle_ingress_vlan_tunnel

From: Nikolay Aleksandrov
Date: Mon Aug 23 2021 - 06:00:58 EST


On 23/08/2021 12:56, Kangmin Park wrote:
> br_handle_ingress_vlan_tunnel() is only referenced in
> br_handle_frame(). If br_handle_ingress_vlan_tunnel() is called and
> return non-zero value, goto drop in br_handle_frame().
>
> But, br_handle_ingress_vlan_tunnel() always return 0. So, the
> routines that check the return value and goto drop has no meaning.
>
> Therefore, change return type of br_handle_ingress_vlan_tunnel() to
> void and remove if statement of br_handle_frame().
>
> Signed-off-by: Kangmin Park <l4stpr0gr4m@xxxxxxxxx>
> ---
> v2:
> - cleanup instead of modifying ingress function
> - change prototype of ingress function
> - cleanup br_handle_frame function
> - change commit message accordingly
>
> net/bridge/br_input.c | 7 ++-----
> net/bridge/br_private_tunnel.h | 6 +++---
> net/bridge/br_vlan_tunnel.c | 14 +++++++-------
> 3 files changed, 12 insertions(+), 15 deletions(-)
>
[snip]
> diff --git a/net/bridge/br_vlan_tunnel.c b/net/bridge/br_vlan_tunnel.c
> index 01017448ebde..7d42b2a5be80 100644
> --- a/net/bridge/br_vlan_tunnel.c
> +++ b/net/bridge/br_vlan_tunnel.c
> @@ -158,30 +158,30 @@ void vlan_tunnel_deinit(struct net_bridge_vlan_group *vg)
> rhashtable_destroy(&vg->tunnel_hash);
> }
>
> -int br_handle_ingress_vlan_tunnel(struct sk_buff *skb,
> - struct net_bridge_port *p,
> - struct net_bridge_vlan_group *vg)
> +void br_handle_ingress_vlan_tunnel(struct sk_buff *skb,
> + struct net_bridge_port *p,
> + struct net_bridge_vlan_group *vg)
> {
> struct ip_tunnel_info *tinfo = skb_tunnel_info(skb);
> struct net_bridge_vlan *vlan;
>
> if (!vg || !tinfo)
> - return 0;
> + return;
>
> /* if already tagged, ignore */
> if (skb_vlan_tagged(skb))
> - return 0;
> + return;
>
> /* lookup vid, given tunnel id */
> vlan = br_vlan_tunnel_lookup(&vg->tunnel_hash, tinfo->key.tun_id);
> if (!vlan)
> - return 0;
> + return;
>
> skb_dst_drop(skb);
>
> __vlan_hwaccel_put_tag(skb, p->br->vlan_proto, vlan->vid);
>
> - return 0;
> + return;

Please drop this unnecessary return statement at the end of the void function.

> }
>
> int br_handle_egress_vlan_tunnel(struct sk_buff *skb,
>