summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2016-12-25 22:37:16 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2016-12-25 22:37:16 -0500
commita2e793b718cfdfd061235c5f8633674b37d0287c (patch)
tree237b356ec2849bada17d4f8c9f9f8d2bffbcdaac
parent85ed4003a1456624fb61c6eb6c934aead9900e5a (diff)
download4.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.patch18
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);