net: sched: fix qdisc->running lockdep annotations
authorEric Dumazet <edumazet@google.com>
Thu, 9 Jun 2016 14:45:11 +0000 (07:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Jun 2016 20:28:37 +0000 (13:28 -0700)
commit52fbb2907988aa0583c6d9d53a56aee090b2df7e
treed15d8d64e2160d72224285158cac6e1e8b343b04
parent5362855aba7159aab8f7c6573eb675d9da317914
net: sched: fix qdisc->running lockdep annotations

1) qdisc_run_begin() is really using the equivalent of a trylock.
  Instead of using write_seqcount_begin(), use a combination of
  raw_write_seqcount_begin() and correct lockdep annotation.

2) sch_direct_xmit() should use regular spin_lock(root_lock)

Fixes: f9eb8aea2a1e ("net_sched: transform qdisc running bit into a seqcount")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sch_generic.h
net/sched/sch_generic.c