Messages in this thread Patch in this message | | | From | Prasad Sodagudi <> | Subject | [PATCH] genirq: call cancel_work_sync from irq_set_affinity_notifier | Date | Wed, 20 Mar 2019 15:00:11 -0700 |
| |
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@codeaurora.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
| |