diff options
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 7 |
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) |