From: William Tu <u9012...@gmail.com>
Date: Fri, 18 Aug 2017 06:24:40 -0700

> +static int erspan_rcv(struct sk_buff *skb, struct tnl_ptk_info *tpi,
> +                   int gre_hdr_len)
> +{
> +     struct net *net = dev_net(skb->dev);
> +     struct ip_tunnel_net *itn;
> +     struct ip_tunnel *tunnel;
> +     struct metadata_dst *tun_dst = NULL;
> +     const struct iphdr *iph;
> +     struct erspanhdr *ershdr;
> +     __be32 index;
> +     __be32 session_id;
> +     int len;

Please order local variables from longest to shortest line, ie. reverse
christmas tree format.

> +
> +     itn = net_generic(net, erspan_net_id);
> +     iph = ip_hdr(skb);
> +     len =  iph->ihl * 4 + gre_hdr_len + sizeof(*ershdr);
> +
> +     if (unlikely(!pskb_may_pull(skb, len)))
> +             return -ENOMEM;

I think the len passed here is wrong, it should be
"gre_hdr_len + sizeof(*ershdr)".
> +static void erspan_build_header(struct sk_buff *skb,
> +                             __be32 id, u32 index, bool truncate)
> +{
> +     struct erspanhdr *ershdr;
> +     struct iphdr *iphdr = ip_hdr(skb);
> +     struct ethhdr *eth = eth_hdr(skb);
> +     struct qtag_prefix {
> +             __be16 eth_type;
> +             __be16 tci;
> +     } *qp;
> +     u16 vlan_tci = 0;
> +     enum erspan_encap_type enc_type = ERSPAN_ENCAP_NOVLAN;

Reverse christmas tree for the local variables, please.

> +static int erspan_validate(struct nlattr *tb[], struct nlattr *data[],
> +                        struct netlink_ext_ack *extack)
> +{
> +     int ret;
> +     __be16 flags = 0;

Likewise.

Reply via email to