On Sun, 2017-05-21 at 08:55 +0800, yuan linyu wrote:
> From: yuan linyu <linyu.y...@alcatel-sbell.com.cn>
> 
> diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
[]
> @@ -512,7 +519,8 @@ void ndisc_send_na(struct net_device *dev, const struct 
> in6_addr *daddr,
>               in6_ifa_put(ifp);
>       } else {
>               if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
> -                                    
> inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->srcprefs,
> +                                    inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->
> +                                             srcprefs,

This is not a good change as it puts a single dereference
on multiple lines.

> @@ -896,20 +910,19 @@ static void ndisc_recv_ns(struct sk_buff *skb)
>       else
>               NEIGH_CACHE_STAT_INC(&nd_tbl, rcv_probes_ucast);
>  
> -     /*
> -      *      update / create cache entry
> +     /*      update / create cache entry
>        *      for the source address

Some of these comments could be single line

> @@ -1003,30 +1016,31 @@ static void ndisc_recv_na(struct sk_buff *skb)
[]
>               ndisc_update(dev, neigh, lladdr,
> -                          msg->icmph.icmp6_solicited ? NUD_REACHABLE : 
> NUD_STALE,
> -                          NEIGH_UPDATE_F_WEAK_OVERRIDE|
> -                          (msg->icmph.icmp6_override ? 
> NEIGH_UPDATE_F_OVERRIDE : 0)|
> -                          NEIGH_UPDATE_F_OVERRIDE_ISROUTER|
> -                          (msg->icmph.icmp6_router ? NEIGH_UPDATE_F_ISROUTER 
> : 0),
> +                          msg->icmph.icmp6_solicited ?
> +                             NUD_REACHABLE : NUD_STALE,
> +                          NEIGH_UPDATE_F_WEAK_OVERRIDE |
> +                          (msg->icmph.icmp6_override ?
> +                             NEIGH_UPDATE_F_OVERRIDE : 0) |
> +                          NEIGH_UPDATE_F_OVERRIDE_ISROUTER |
> +                          (msg->icmph.icmp6_router ?
> +                             NEIGH_UPDATE_F_ISROUTER : 0),
>                            NDISC_NEIGHBOUR_ADVERTISEMENT, &ndopts);

This is much more difficult to read now and could
be slightly improved by a temporary for msg->icmph,
removing unnecessary parentheses or using multiple
line tests for the flags argument of ndisc_update
instead of the slightly difficult to read uses of
multiple ternaries with bitwise ORs.

Something like:

        struct icmp6hdr *icmph = &msg->icmph;
        u32 flags;
[...]
                flags = NEIGH_UPDATE_F_WEAK_OVERRIDE | 
NEIGH_UPDATE_F_OVERRIDE_ISROUTER;
                if (icmph->icmp6_override)
                        flags |= NEIGH_UPDATE_F_OVERRIDE;
                if (icmph->icmp6_router)
                        flags |= NEIGH_UPDATE_F_ISROUTER;

                ndisc_update(dev, neigh, lladdr,
                             icmph->icmp6_solicited ? NUD_REACHABLE : NUD_STALE,
                             flags, NDISC_NEIGHBOUR_ADVERTISEMENT, &ndopts);

But really, why bother?

Just because checkpatch bleats some message doesn't
mean it _has_ to be fixed.

Please strive to make the code more readable and
intelligible for _humans_.  Compilers don't care.

Reply via email to