[rt] Refresh "genirq: Handle missing work_struct in irq_set_affinity_notifier()" for context changes in 4.19.114

This commit is contained in:
Salvatore Bonaccorso 2020-04-16 23:36:00 +02:00
parent 970c295c4d
commit 70cac4105f
2 changed files with 12 additions and 9 deletions

2
debian/changelog vendored
View File

@ -1626,6 +1626,8 @@ linux (4.19.115-1) UNRELEASED; urgency=medium
on RT" for context changes in 4.19.114
* [rt] Refresh "genirq: Do not invoke the affinity callback via a workqueue
on RT" for context changes in 4.19.114
* [rt] Refresh "genirq: Handle missing work_struct in
irq_set_affinity_notifier()" for context changes in 4.19.114
[ Ben Hutchings ]
* [x86] Drop "Add a SysRq option to lift kernel lockdown" (Closes: #947021)

View File

@ -21,22 +21,23 @@ Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/irq/manage.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index d5539e04e00a..290cd520dba1 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -411,8 +411,9 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
@@ -415,13 +415,14 @@
raw_spin_unlock_irqrestore(&desc->lock, flags);
if (old_notify) {
-#ifndef CONFIG_PREEMPT_RT_BASE
- /* Need to address this for PREEMPT_RT */
+#ifdef CONFIG_PREEMPT_RT_BASE
+ kthread_cancel_work_sync(&notify->work);
+ if (kthread_cancel_work_sync(&notify->work)) {
+#else
cancel_work_sync(&old_notify->work);
#endif
if (cancel_work_sync(&old_notify->work)) {
+#endif
/* Pending work had a ref, put that one too */
kref_put(&old_notify->kref, old_notify->release);
}
-#endif
kref_put(&old_notify->kref, old_notify->release);
--
2.25.1
}