diff options
author | Ben Hutchings <benh@debian.org> | 2020-11-06 03:00:35 +0000 |
---|---|---|
committer | Ben Hutchings <benh@debian.org> | 2020-11-06 12:47:44 +0000 |
commit | 983e1a76e0ad453d5749372e864a93cd7ba94969 (patch) | |
tree | 0fe7d61f39837a1db83efc9d7f1c9c9d6be6d37b | |
parent | 4f488a08a975af40b14d49ec64a14b930ab14e58 (diff) | |
download | kernel_replicant_linux-983e1a76e0ad453d5749372e864a93cd7ba94969.tar.gz kernel_replicant_linux-983e1a76e0ad453d5749372e864a93cd7ba94969.tar.bz2 kernel_replicant_linux-983e1a76e0ad453d5749372e864a93cd7ba94969.zip |
[rt] Rebase seqlock patches on top of 5.9.6
The patch "seqlock: Unbreak lockdep" was applied in 5.9.2, causing
conflicts with some other seqlock patches that are before it in the
current rt patch series.
There is also a minor conflict with "time/sched_clock: Mark
sched_clock_read_begin/retry() as notrace" applied in 5.9.5.
* Drop "seqlock: Unbreak lockdep" from the rt patch series
* Resolve the remaining conflicts with seqlock patches
* Re-enable all the other seqlock patches
Also resolve a trivial textual conflict with "time/sched_clock: Mark
sched_clock_read_begin/retry() as notrace" in 5.9.5.
6 files changed, 49 insertions, 114 deletions
diff --git a/debian/changelog b/debian/changelog index c267499e44e5..1fb82783d36e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1070,11 +1070,13 @@ linux (5.9.6-1) UNRELEASED; urgency=medium * Bump ABI to 2 * [x86] media/cec: Enable MEDIA_CEC_SUPPORT; Enable CEC_SECO as module (Closes: #972973) - * [rt] (Temporary) disable seqcount related patches * [rt] Drop "printk: reduce LOG_BUF_SHIFT range for H8300" * [rt] Drop "mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race" + [ Ben Hutchings ] + * [rt] Rebase seqlock patches on top of 5.9.6 + -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Sun, 18 Oct 2020 20:07:46 +0100 linux (5.9.1-1) unstable; urgency=medium diff --git a/debian/patches-rt/0004-time-sched_clock-Use-seqcount_latch_t.patch b/debian/patches-rt/0004-time-sched_clock-Use-seqcount_latch_t.patch index cdbc3c23b431..e97e0a912520 100644 --- a/debian/patches-rt/0004-time-sched_clock-Use-seqcount_latch_t.patch +++ b/debian/patches-rt/0004-time-sched_clock-Use-seqcount_latch_t.patch @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> unsigned long rate; @@ -76,7 +76,7 @@ struct clock_read_data *sched_clock_read - int sched_clock_read_retry(unsigned int seq) + notrace int sched_clock_read_retry(unsigned int seq) { - return read_seqcount_retry(&cd.seq, seq); + return read_seqcount_latch_retry(&cd.seq, seq); diff --git a/debian/patches-rt/0009-seqlock-seqcount_LOCKNAME_t-Standardize-naming-conve.patch b/debian/patches-rt/0009-seqlock-seqcount_LOCKNAME_t-Standardize-naming-conve.patch index 330ae97c57bc..10ec2b63c78b 100644 --- a/debian/patches-rt/0009-seqlock-seqcount_LOCKNAME_t-Standardize-naming-conve.patch +++ b/debian/patches-rt/0009-seqlock-seqcount_LOCKNAME_t-Standardize-naming-conve.patch @@ -14,6 +14,7 @@ Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20200904153231.11994-2-a.darwish@linutronix.de Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +[bwh: Adjust context to apply on top of 5.9.6] --- include/linux/seqlock.h | 79 ++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 39 deletions(-) @@ -38,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * A sequence counter which associates the lock used for writer * serialization at initialization time. This enables lockdep to validate -@@ -138,30 +138,32 @@ static inline void seqcount_lockdep_read +@@ -138,20 +138,22 @@ static inline void seqcount_lockdep_read #endif /** @@ -65,6 +66,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> + * @lock: Pointer to the associated lock */ + #define seqcount_LOCKNAME_init(s, _lock, lockname) \ +@@ -168,13 +170,13 @@ static inline void seqcount_lockdep_read + #define seqcount_ww_mutex_init(s, lock) seqcount_LOCKNAME_init(s, lock, ww_mutex); + /* - * SEQCOUNT_LOCKTYPE() - Instantiate seqcount_LOCKNAME_t and helpers - * @locktype: actual typename @@ -81,7 +86,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> typedef struct seqcount_##lockname { \ seqcount_t seqcount; \ __SEQ_LOCK(locktype *lock); \ -@@ -211,29 +213,28 @@ static inline void __seqcount_assert(seq +@@ -217,28 +219,28 @@ static inline void __seqcount_assert(seq lockdep_assert_preemption_disabled(); } @@ -109,21 +114,20 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> __SEQ_LOCK(.lock = (assoc_lock)) \ } --#define SEQCNT_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKTYPE_ZERO(name, lock) -#define SEQCNT_RAW_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKTYPE_ZERO(name, lock) +-#define SEQCNT_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKTYPE_ZERO(name, lock) -#define SEQCNT_RWLOCK_ZERO(name, lock) SEQCOUNT_LOCKTYPE_ZERO(name, lock) -#define SEQCNT_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKTYPE_ZERO(name, lock) -#define SEQCNT_WW_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKTYPE_ZERO(name, lock) -- -+#define SEQCNT_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) +#define SEQCNT_RAW_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) ++#define SEQCNT_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) +#define SEQCNT_RWLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) +#define SEQCNT_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) +#define SEQCNT_WW_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) #define __seqprop_case(s, lockname, prop) \ seqcount_##lockname##_t: __seqcount_##lockname##_##prop((void *)(s)) -@@ -252,7 +253,7 @@ SEQCOUNT_LOCKTYPE(struct ww_mutex, ww_mu +@@ -257,7 +259,7 @@ SEQCOUNT_LOCKTYPE(struct ww_mutex, ww_mu /** * __read_seqcount_begin() - begin a seqcount_t read section w/o barrier @@ -132,7 +136,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * __read_seqcount_begin is like read_seqcount_begin, but has no smp_rmb() * barrier. Callers should ensure that smp_rmb() or equivalent ordering is -@@ -283,7 +284,7 @@ static inline unsigned __read_seqcount_t +@@ -288,7 +290,7 @@ repeat: /** * raw_read_seqcount_begin() - begin a seqcount_t read section w/o lockdep @@ -141,7 +145,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * Return: count to be passed to read_seqcount_retry() */ -@@ -299,7 +300,7 @@ static inline unsigned raw_read_seqcount +@@ -304,7 +306,7 @@ static inline unsigned raw_read_seqcount /** * read_seqcount_begin() - begin a seqcount_t read critical section @@ -150,7 +154,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * Return: count to be passed to read_seqcount_retry() */ -@@ -314,7 +315,7 @@ static inline unsigned read_seqcount_t_b +@@ -319,7 +321,7 @@ static inline unsigned read_seqcount_t_b /** * raw_read_seqcount() - read the raw seqcount_t counter value @@ -159,7 +163,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * raw_read_seqcount opens a read critical section of the given * seqcount_t, without any lockdep checking, and without checking or -@@ -337,7 +338,7 @@ static inline unsigned raw_read_seqcount +@@ -342,7 +344,7 @@ static inline unsigned raw_read_seqcount /** * raw_seqcount_begin() - begin a seqcount_t read critical section w/o * lockdep and w/o counter stabilization @@ -168,7 +172,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * raw_seqcount_begin opens a read critical section of the given * seqcount_t. Unlike read_seqcount_begin(), this function will not wait -@@ -365,7 +366,7 @@ static inline unsigned raw_seqcount_t_be +@@ -370,7 +372,7 @@ static inline unsigned raw_seqcount_t_be /** * __read_seqcount_retry() - end a seqcount_t read section w/o barrier @@ -177,7 +181,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * @start: count, from read_seqcount_begin() * * __read_seqcount_retry is like read_seqcount_retry, but has no smp_rmb() -@@ -389,7 +390,7 @@ static inline int __read_seqcount_t_retr +@@ -394,7 +396,7 @@ static inline int __read_seqcount_t_retr /** * read_seqcount_retry() - end a seqcount_t read critical section @@ -186,7 +190,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * @start: count, from read_seqcount_begin() * * read_seqcount_retry closes the read critical section of given -@@ -409,7 +410,7 @@ static inline int read_seqcount_t_retry( +@@ -414,7 +416,7 @@ static inline int read_seqcount_t_retry( /** * raw_write_seqcount_begin() - start a seqcount_t write section w/o lockdep @@ -195,7 +199,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> */ #define raw_write_seqcount_begin(s) \ do { \ -@@ -428,7 +429,7 @@ static inline void raw_write_seqcount_t_ +@@ -433,7 +435,7 @@ static inline void raw_write_seqcount_t_ /** * raw_write_seqcount_end() - end a seqcount_t write section w/o lockdep @@ -204,7 +208,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> */ #define raw_write_seqcount_end(s) \ do { \ -@@ -448,7 +449,7 @@ static inline void raw_write_seqcount_t_ +@@ -453,7 +455,7 @@ static inline void raw_write_seqcount_t_ /** * write_seqcount_begin_nested() - start a seqcount_t write section with * custom lockdep nesting level @@ -213,7 +217,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * @subclass: lockdep nesting level * * See Documentation/locking/lockdep-design.rst -@@ -471,7 +472,7 @@ static inline void write_seqcount_t_begi +@@ -476,7 +478,7 @@ static inline void write_seqcount_t_begi /** * write_seqcount_begin() - start a seqcount_t write side critical section @@ -222,7 +226,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * write_seqcount_begin opens a write side critical section of the given * seqcount_t. -@@ -497,7 +498,7 @@ static inline void write_seqcount_t_begi +@@ -502,7 +504,7 @@ static inline void write_seqcount_t_begi /** * write_seqcount_end() - end a seqcount_t write side critical section @@ -231,7 +235,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * The write section must've been opened with write_seqcount_begin(). */ -@@ -517,7 +518,7 @@ static inline void write_seqcount_t_end( +@@ -522,7 +524,7 @@ static inline void write_seqcount_t_end( /** * raw_write_seqcount_barrier() - do a seqcount_t write barrier @@ -240,7 +244,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * * This can be used to provide an ordering guarantee instead of the usual * consistency guarantee. It is one wmb cheaper, because it can collapse -@@ -571,7 +572,7 @@ static inline void raw_write_seqcount_t_ +@@ -576,7 +578,7 @@ static inline void raw_write_seqcount_t_ /** * write_seqcount_invalidate() - invalidate in-progress seqcount_t read * side operations diff --git a/debian/patches-rt/0010-seqlock-Use-unique-prefix-for-seqcount_t-property-ac.patch b/debian/patches-rt/0010-seqlock-Use-unique-prefix-for-seqcount_t-property-ac.patch index dd74d3ac81a4..d9435ad28d74 100644 --- a/debian/patches-rt/0010-seqlock-Use-unique-prefix-for-seqcount_t-property-ac.patch +++ b/debian/patches-rt/0010-seqlock-Use-unique-prefix-for-seqcount_t-property-ac.patch @@ -40,8 +40,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h -@@ -157,7 +157,9 @@ static inline void seqcount_lockdep_read - */ +@@ -170,7 +170,9 @@ static inline void seqcount_lockdep_read + #define seqcount_ww_mutex_init(s, lock) seqcount_LOCKNAME_init(s, lock, ww_mutex); /* - * SEQCOUNT_LOCKNAME() - Instantiate seqcount_LOCKNAME_t and helpers @@ -51,8 +51,8 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> * @lockname: "LOCKNAME" part of seqcount_LOCKNAME_t * @locktype: LOCKNAME canonical C data type * @preemptible: preemptibility of above lockname -@@ -177,19 +179,19 @@ seqcount_##lockname##_init(seqcount_##lo - } \ +@@ -183,19 +185,19 @@ typedef struct seqcount_##lockname { + } seqcount_##lockname##_t; \ \ static __always_inline seqcount_t * \ -__seqcount_##lockname##_ptr(seqcount_##lockname##_t *s) \ @@ -74,7 +74,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> { \ __SEQ_LOCK(lockdep_assert_held(lockmember)); \ } -@@ -198,17 +200,17 @@ static __always_inline void \ +@@ -204,17 +206,17 @@ __seqcount_##lockname##_assert(seqcount_ * __seqprop() for seqcount_t */ @@ -95,7 +95,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> { lockdep_assert_preemption_disabled(); } -@@ -237,10 +239,10 @@ SEQCOUNT_LOCKNAME(ww_mutex, struct ww_mu +@@ -243,10 +245,10 @@ SEQCOUNT_LOCKNAME(ww_mutex, struct ww_mu #define SEQCNT_WW_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) #define __seqprop_case(s, lockname, prop) \ diff --git a/debian/patches-rt/seqlock-Unbreak-lockdep.patch b/debian/patches-rt/seqlock-Unbreak-lockdep.patch deleted file mode 100644 index f2084fe39cea..000000000000 --- a/debian/patches-rt/seqlock-Unbreak-lockdep.patch +++ /dev/null @@ -1,69 +0,0 @@ -From: "peterz@infradead.org" <peterz@infradead.org> -Date: Tue, 15 Sep 2020 16:30:28 +0200 -Subject: [PATCH] seqlock: Unbreak lockdep -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.9/older/patches-5.9.1-rt20.tar.xz - -Upstream commit 267580db047ef428a70bef8287ca62c5a450c139 - -seqcount_LOCKNAME_init() needs to be a macro due to the lockdep -annotation in seqcount_init(). Since a macro cannot define another -macro, we need to effectively revert commit: e4e9ab3f9f91 ("seqlock: -Fold seqcount_LOCKNAME_init() definition"). - -Fixes: e4e9ab3f9f91 ("seqlock: Fold seqcount_LOCKNAME_init() definition") -Reported-by: Qian Cai <cai@redhat.com> -Debugged-by: Boqun Feng <boqun.feng@gmail.com> -Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> -Tested-by: Qian Cai <cai@redhat.com> -Link: https://lkml.kernel.org/r/20200915143028.GB2674@hirez.programming.kicks-ass.net -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - include/linux/seqlock.h | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - ---- a/include/linux/seqlock.h -+++ b/include/linux/seqlock.h -@@ -173,6 +173,19 @@ static inline void seqcount_lockdep_read - * @lock: Pointer to the associated lock - */ - -+#define seqcount_LOCKNAME_init(s, _lock, lockname) \ -+ do { \ -+ seqcount_##lockname##_t *____s = (s); \ -+ seqcount_init(&____s->seqcount); \ -+ __SEQ_LOCK(____s->lock = (_lock)); \ -+ } while (0) -+ -+#define seqcount_raw_spinlock_init(s, lock) seqcount_LOCKNAME_init(s, lock, raw_spinlock) -+#define seqcount_spinlock_init(s, lock) seqcount_LOCKNAME_init(s, lock, spinlock) -+#define seqcount_rwlock_init(s, lock) seqcount_LOCKNAME_init(s, lock, rwlock); -+#define seqcount_mutex_init(s, lock) seqcount_LOCKNAME_init(s, lock, mutex); -+#define seqcount_ww_mutex_init(s, lock) seqcount_LOCKNAME_init(s, lock, ww_mutex); -+ - /* - * SEQCOUNT_LOCKNAME() - Instantiate seqcount_LOCKNAME_t and helpers - * seqprop_LOCKNAME_*() - Property accessors for seqcount_LOCKNAME_t -@@ -190,13 +203,6 @@ typedef struct seqcount_##lockname { - __SEQ_LOCK(locktype *lock); \ - } seqcount_##lockname##_t; \ - \ --static __always_inline void \ --seqcount_##lockname##_init(seqcount_##lockname##_t *s, locktype *lock) \ --{ \ -- seqcount_init(&s->seqcount); \ -- __SEQ_LOCK(s->lock = lock); \ --} \ -- \ - static __always_inline seqcount_t * \ - __seqprop_##lockname##_ptr(seqcount_##lockname##_t *s) \ - { \ -@@ -284,8 +290,8 @@ SEQCOUNT_LOCKNAME(ww_mutex, struct w - __SEQ_LOCK(.lock = (assoc_lock)) \ - } - --#define SEQCNT_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) - #define SEQCNT_RAW_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) -+#define SEQCNT_SPINLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) - #define SEQCNT_RWLOCK_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) - #define SEQCNT_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) - #define SEQCNT_WW_MUTEX_ZERO(name, lock) SEQCOUNT_LOCKNAME_ZERO(name, lock) diff --git a/debian/patches-rt/series b/debian/patches-rt/series index 2bd4c08f4fa8..8d8aa89237e2 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -179,34 +179,32 @@ mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch # seqcount # https://lkml.kernel.org/r/20200817000200.20993-1-rdunlap@infradead.org -#seqlock-Fix-multiple-kernel-doc-warnings.patch +seqlock-Fix-multiple-kernel-doc-warnings.patch # 2020-08-27 13:40 Ahmed S. Darwis [PATCH v1 0/8] seqlock: Introduce seqcount_latch_t # 20200827114044.11173-1-a.darwish@linutronix.de -#0001-time-sched_clock-Use-raw_read_seqcount_latch-during-.patch -#0002-mm-swap-Do-not-abuse-the-seqcount_t-latching-API.patch -#0003-seqlock-Introduce-seqcount_latch_t.patch -#0004-time-sched_clock-Use-seqcount_latch_t.patch -#0005-timekeeping-Use-seqcount_latch_t.patch -#0006-x86-tsc-Use-seqcount_latch_t.patch -#0007-rbtree_latch-Use-seqcount_latch_t.patch -#0008-seqlock-seqcount-latch-APIs-Only-allow-seqcount_latc.patch +0001-time-sched_clock-Use-raw_read_seqcount_latch-during-.patch +0002-mm-swap-Do-not-abuse-the-seqcount_t-latching-API.patch +0003-seqlock-Introduce-seqcount_latch_t.patch +0004-time-sched_clock-Use-seqcount_latch_t.patch +0005-timekeeping-Use-seqcount_latch_t.patch +0006-x86-tsc-Use-seqcount_latch_t.patch +0007-rbtree_latch-Use-seqcount_latch_t.patch +0008-seqlock-seqcount-latch-APIs-Only-allow-seqcount_latc.patch # 2020-09-04 17:32 Ahmed S. Darwis [PATCH v2 0/5] seqlock: Introduce PREEMPT_RT support # 20200904153231.11994-1-a.darwish@linutronix.de -#0009-seqlock-seqcount_LOCKNAME_t-Standardize-naming-conve.patch -#0010-seqlock-Use-unique-prefix-for-seqcount_t-property-ac.patch -#0011-seqlock-seqcount_t-Implement-all-read-APIs-as-statem.patch -#0012-seqlock-seqcount_LOCKNAME_t-Introduce-PREEMPT_RT-sup.patch -#0013-seqlock-PREEMPT_RT-Do-not-starve-seqlock_t-writers.patch -## 267580db047ef428a70bef8287ca62c5a450c139 -#seqlock-Unbreak-lockdep.patch +0009-seqlock-seqcount_LOCKNAME_t-Standardize-naming-conve.patch +0010-seqlock-Use-unique-prefix-for-seqcount_t-property-ac.patch +0011-seqlock-seqcount_t-Implement-all-read-APIs-as-statem.patch +0012-seqlock-seqcount_LOCKNAME_t-Introduce-PREEMPT_RT-sup.patch +0013-seqlock-PREEMPT_RT-Do-not-starve-seqlock_t-writers.patch ## 0024-xfrm-Use-sequence-counter-with-associated-spinlock.patch u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch fs-dcache-use-swait_queue-instead-of-waitqueue.patch fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch -#net-Qdisc-use-a-seqlock-instead-seqcount.patch -#net-Properly-annotate-the-try-lock-for-the-seqlock.patch +net-Qdisc-use-a-seqlock-instead-seqcount.patch +net-Properly-annotate-the-try-lock-for-the-seqlock.patch ##### # split changelog |