[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1553119211-29761-1-git-send-email-psodagud@codeaurora.org>
Date: Wed, 20 Mar 2019 15:00:11 -0700
From: Prasad Sodagudi <psodagud@...eaurora.org>
To: tglx@...utronix.de
Cc: linux-kernel@...r.kernel.org, psodagud@...eaurora.org
Subject: [PATCH] genirq: call cancel_work_sync from irq_set_affinity_notifier
When ever notification of IRQ affinity changes, call
cancel_work_sync from irq_set_affinity_notifier to cancel
all pending works to avoid work list corruption.
Signed-off-by: Prasad Sodagudi <psodagud@...eaurora.org>
---
kernel/irq/manage.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 9ec34a2..da8b2ee 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -356,6 +356,9 @@ static void irq_affinity_notify(struct work_struct *work)
desc->affinity_notify = notify;
raw_spin_unlock_irqrestore(&desc->lock, flags);
+ if (!notify && old_notify)
+ cancel_work_sync(&old_notify->work);
+
if (old_notify)
kref_put(&old_notify->kref, old_notify->release);
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
Powered by blists - more mailing lists