net/sched: annotate lockless accesses to qdisc->empty
[linux-2.6-block.git] / include / net / sch_generic.h
index a8b0a9a4c686541d175ea5b543c0ec3c9d7c9e79..d43da37737be230f1b745fdc30409c13854c5628 100644 (file)
@@ -148,8 +148,8 @@ static inline bool qdisc_is_percpu_stats(const struct Qdisc *q)
 static inline bool qdisc_is_empty(const struct Qdisc *qdisc)
 {
        if (qdisc_is_percpu_stats(qdisc))
-               return qdisc->empty;
-       return !qdisc->q.qlen;
+               return READ_ONCE(qdisc->empty);
+       return !READ_ONCE(qdisc->q.qlen);
 }
 
 static inline bool qdisc_run_begin(struct Qdisc *qdisc)
@@ -157,7 +157,7 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc)
        if (qdisc->flags & TCQ_F_NOLOCK) {
                if (!spin_trylock(&qdisc->seqlock))
                        return false;
-               qdisc->empty = false;
+               WRITE_ONCE(qdisc->empty, false);
        } else if (qdisc_is_running(qdisc)) {
                return false;
        }