ipv6: remove useless spin_lock/spin_unlock
authorDuan Jiong <duanj.fnst@cn.fujitsu.com>
Wed, 3 Dec 2014 02:29:40 +0000 (10:29 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 9 Dec 2014 18:18:09 +0000 (13:18 -0500)
xchg is atomic, so there is no necessary to use spin_lock/spin_unlock
to protect it. At last, remove the redundant
opt = xchg(&inet6_sk(sk)->opt, opt); statement.

Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ipv6_sockglue.c

index e1a9583bb4191f44b021e3d39483ed29d1f22fc4..66980d8d98d1f5b3ef7a50dc33cb9b617f25604d 100644 (file)
@@ -110,12 +110,8 @@ struct ipv6_txoptions *ipv6_update_options(struct sock *sk,
                        icsk->icsk_ext_hdr_len = opt->opt_flen + opt->opt_nflen;
                        icsk->icsk_sync_mss(sk, icsk->icsk_pmtu_cookie);
                }
-               opt = xchg(&inet6_sk(sk)->opt, opt);
-       } else {
-               spin_lock(&sk->sk_dst_lock);
-               opt = xchg(&inet6_sk(sk)->opt, opt);
-               spin_unlock(&sk->sk_dst_lock);
        }
+       opt = xchg(&inet6_sk(sk)->opt, opt);
        sk_dst_reset(sk);
 
        return opt;