netlink: annotate accesses to nlk->cb_running
[linux-2.6-microblaze.git] / net / netlink / af_netlink.c
index 7ef8b9a..c878041 100644 (file)
@@ -1990,7 +1990,7 @@ static int netlink_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
 
        skb_free_datagram(sk, skb);
 
-       if (nlk->cb_running &&
+       if (READ_ONCE(nlk->cb_running) &&
            atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf / 2) {
                ret = netlink_dump(sk);
                if (ret) {
@@ -2302,7 +2302,7 @@ static int netlink_dump(struct sock *sk)
        if (cb->done)
                cb->done(cb);
 
-       nlk->cb_running = false;
+       WRITE_ONCE(nlk->cb_running, false);
        module = cb->module;
        skb = cb->skb;
        mutex_unlock(nlk->cb_mutex);
@@ -2365,7 +2365,7 @@ int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
                        goto error_put;
        }
 
-       nlk->cb_running = true;
+       WRITE_ONCE(nlk->cb_running, true);
        nlk->dump_done_errno = INT_MAX;
 
        mutex_unlock(nlk->cb_mutex);
@@ -2703,7 +2703,7 @@ static int netlink_native_seq_show(struct seq_file *seq, void *v)
                           nlk->groups ? (u32)nlk->groups[0] : 0,
                           sk_rmem_alloc_get(s),
                           sk_wmem_alloc_get(s),
-                          nlk->cb_running,
+                          READ_ONCE(nlk->cb_running),
                           refcount_read(&s->sk_refcnt),
                           atomic_read(&s->sk_drops),
                           sock_i_ino(s)