aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r--kernel/irq/manage.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 9ec34a2a6638..78f3ddeb7fe4 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -196,6 +196,7 @@ int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask,
196 case IRQ_SET_MASK_OK: 196 case IRQ_SET_MASK_OK:
197 case IRQ_SET_MASK_OK_DONE: 197 case IRQ_SET_MASK_OK_DONE:
198 cpumask_copy(desc->irq_common_data.affinity, mask); 198 cpumask_copy(desc->irq_common_data.affinity, mask);
199 /* fall through */
199 case IRQ_SET_MASK_OK_NOCOPY: 200 case IRQ_SET_MASK_OK_NOCOPY:
200 irq_validate_effective_affinity(data); 201 irq_validate_effective_affinity(data);
201 irq_set_thread_affinity(desc); 202 irq_set_thread_affinity(desc);
@@ -356,8 +357,10 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify)
356 desc->affinity_notify = notify; 357 desc->affinity_notify = notify;
357 raw_spin_unlock_irqrestore(&desc->lock, flags); 358 raw_spin_unlock_irqrestore(&desc->lock, flags);
358 359
359 if (old_notify) 360 if (old_notify) {
361 cancel_work_sync(&old_notify->work);
360 kref_put(&old_notify->kref, old_notify->release); 362 kref_put(&old_notify->kref, old_notify->release);
363 }
361 364
362 return 0; 365 return 0;
363} 366}
@@ -778,7 +781,7 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags)
778 ret = 0; 781 ret = 0;
779 break; 782 break;
780 default: 783 default:
781 pr_err("Setting trigger mode %lu for irq %u failed (%pF)\n", 784 pr_err("Setting trigger mode %lu for irq %u failed (%pS)\n",
782 flags, irq_desc_get_irq(desc), chip->irq_set_type); 785 flags, irq_desc_get_irq(desc), chip->irq_set_type);
783 } 786 }
784 if (unmask) 787 if (unmask)