diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-12-25 22:37:16 -0500 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2016-12-25 22:37:16 -0500 |
commit | a2e793b718cfdfd061235c5f8633674b37d0287c (patch) | |
tree | 237b356ec2849bada17d4f8c9f9f8d2bffbcdaac | |
parent | 85ed4003a1456624fb61c6eb6c934aead9900e5a (diff) | |
download | 4.9-rt-patches-a2e793b718cfdfd061235c5f8633674b37d0287c.tar.gz |
qdisc: seqcount: refresh for struct qdisc_skb_head
-rw-r--r-- | patches/net-Qdisc-use-a-seqlock-instead-seqcount.patch | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/patches/net-Qdisc-use-a-seqlock-instead-seqcount.patch b/patches/net-Qdisc-use-a-seqlock-instead-seqcount.patch index b27c745ce50779..fd46e559bcd936 100644 --- a/patches/net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/patches/net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -107,16 +107,16 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> struct Qdisc_ops; struct qdisc_walker; -@@ -78,7 +79,7 @@ struct Qdisc { +@@ -86,7 +87,7 @@ struct Qdisc { struct sk_buff *gso_skb ____cacheline_aligned_in_smp; - struct sk_buff_head q; + struct qdisc_skb_head q; struct gnet_stats_basic_packed bstats; - seqcount_t running; + net_seqlock_t running; struct gnet_stats_queue qstats; unsigned long state; struct Qdisc *next_sched; -@@ -90,13 +91,22 @@ struct Qdisc { +@@ -98,13 +99,22 @@ struct Qdisc { spinlock_t busylock ____cacheline_aligned_in_smp; }; @@ -140,7 +140,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (qdisc_is_running(qdisc)) return false; /* Variant of write_seqcount_begin() telling lockdep a trylock -@@ -105,11 +115,16 @@ static inline bool qdisc_run_begin(struc +@@ -113,11 +123,16 @@ static inline bool qdisc_run_begin(struc raw_write_seqcount_begin(&qdisc->running); seqcount_acquire(&qdisc->running.dep_map, 0, 1, _RET_IP_); return true; @@ -157,7 +157,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } static inline bool qdisc_may_bulk(const struct Qdisc *qdisc) -@@ -300,7 +315,7 @@ static inline spinlock_t *qdisc_root_sle +@@ -308,7 +323,7 @@ static inline spinlock_t *qdisc_root_sle return qdisc_lock(root); } @@ -230,7 +230,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> struct gnet_stats_basic_packed *b) --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c -@@ -975,7 +975,7 @@ qdisc_create(struct net_device *dev, str +@@ -981,7 +981,7 @@ static struct Qdisc *qdisc_create(struct rcu_assign_pointer(sch->stab, stab); } if (tca[TCA_RATE]) { @@ -241,8 +241,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (sch->flags & TCQ_F_MQROOT) --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c -@@ -426,7 +426,11 @@ struct Qdisc noop_qdisc = { - .list = LIST_HEAD_INIT(noop_qdisc.list), +@@ -425,7 +425,11 @@ struct Qdisc noop_qdisc = { + .ops = &noop_qdisc_ops, .q.lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.q.lock), .dev_queue = &noop_netdev_queue, +#ifdef CONFIG_PREEMPT_RT_BASE @@ -253,7 +253,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> .busylock = __SPIN_LOCK_UNLOCKED(noop_qdisc.busylock), }; EXPORT_SYMBOL(noop_qdisc); -@@ -620,9 +624,17 @@ struct Qdisc *qdisc_alloc(struct netdev_ +@@ -624,9 +628,17 @@ struct Qdisc *qdisc_alloc(struct netdev_ lockdep_set_class(&sch->busylock, dev->qdisc_tx_busylock ?: &qdisc_tx_busylock); |