Hi Sebastian, This patch fixes a problem [1] I saw when backporting 'net: Properly annotate the try-lock for the seqlock" from 5.4 to 4.19 which also looks like it should apply to -devel. Thanks, Tom [1] https://lore.kernel.org/linux-rt-users/20201110153853.463368981@xxxxxxxxxxx/T/#m0be3a1290486f3493828dedcf7f06d5fbba092a8 --- The patch ('net: Properly annotate the try-lock for the seqlock") adds __raw_write_seqcount_begin() in qdisc_run_begin() but omits the corresponding __raw_write_seqcount_end() and seqcount_release() in qdisc_run_end(). Add it unconditionally, since qdisc_run_end() is never called unless qdisc_run_begin() succeeds, and if it succeeds, __raw_write_seqcount_begin() seqcount_acquire() will have been called. Signed-off-by: Tom Zanussi <zanussi@xxxxxxxxxx> --- include/net/sch_generic.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 112d2dca8b08..c5ccce4f8f62 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -192,7 +192,11 @@ static inline bool qdisc_run_begin(struct Qdisc *qdisc) static inline void qdisc_run_end(struct Qdisc *qdisc) { #ifdef CONFIG_PREEMPT_RT + seqcount_t *s = &qdisc->running.seqcount; + write_sequnlock(&qdisc->running); + __raw_write_seqcount_end(s); + seqcount_release(&s->dep_map, 1, _RET_IP_); #else write_seqcount_end(&qdisc->running); #endif -- 2.17.1