diff options
| author | Ingo Molnar <mingo@kernel.org> | 2015-08-31 04:25:26 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2015-08-31 04:25:26 -0400 |
| commit | 02b643b643254ec79b5f9aaa143e10be68eabdab (patch) | |
| tree | 57ec83eebab74324465199a3f52f4f7862177ee6 /kernel | |
| parent | d1ee8bc195ffedbf91af0245a2406d6ebd2578f8 (diff) | |
| parent | 4c09e0d6ba65507a0ee0ca9abc5335e4f7bd7404 (diff) | |
Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/irq/chip.c | 19 | ||||
| -rw-r--r-- | kernel/time/timer.c | 4 |
2 files changed, 20 insertions, 3 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 27f4332c7f84..ae216824e8ca 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
| @@ -985,6 +985,23 @@ int irq_chip_set_affinity_parent(struct irq_data *data, | |||
| 985 | } | 985 | } |
| 986 | 986 | ||
| 987 | /** | 987 | /** |
| 988 | * irq_chip_set_type_parent - Set IRQ type on the parent interrupt | ||
| 989 | * @data: Pointer to interrupt specific data | ||
| 990 | * @type: IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h | ||
| 991 | * | ||
| 992 | * Conditional, as the underlying parent chip might not implement it. | ||
| 993 | */ | ||
| 994 | int irq_chip_set_type_parent(struct irq_data *data, unsigned int type) | ||
| 995 | { | ||
| 996 | data = data->parent_data; | ||
| 997 | |||
| 998 | if (data->chip->irq_set_type) | ||
| 999 | return data->chip->irq_set_type(data, type); | ||
| 1000 | |||
| 1001 | return -ENOSYS; | ||
| 1002 | } | ||
| 1003 | |||
| 1004 | /** | ||
| 988 | * irq_chip_retrigger_hierarchy - Retrigger an interrupt in hardware | 1005 | * irq_chip_retrigger_hierarchy - Retrigger an interrupt in hardware |
| 989 | * @data: Pointer to interrupt specific data | 1006 | * @data: Pointer to interrupt specific data |
| 990 | * | 1007 | * |
| @@ -997,7 +1014,7 @@ int irq_chip_retrigger_hierarchy(struct irq_data *data) | |||
| 997 | if (data->chip && data->chip->irq_retrigger) | 1014 | if (data->chip && data->chip->irq_retrigger) |
| 998 | return data->chip->irq_retrigger(data); | 1015 | return data->chip->irq_retrigger(data); |
| 999 | 1016 | ||
| 1000 | return -ENOSYS; | 1017 | return 0; |
| 1001 | } | 1018 | } |
| 1002 | 1019 | ||
| 1003 | /** | 1020 | /** |
diff --git a/kernel/time/timer.c b/kernel/time/timer.c index 5e097fa9faf7..84190f02b521 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c | |||
| @@ -807,8 +807,8 @@ __mod_timer(struct timer_list *timer, unsigned long expires, | |||
| 807 | spin_unlock(&base->lock); | 807 | spin_unlock(&base->lock); |
| 808 | base = new_base; | 808 | base = new_base; |
| 809 | spin_lock(&base->lock); | 809 | spin_lock(&base->lock); |
| 810 | timer->flags &= ~TIMER_BASEMASK; | 810 | WRITE_ONCE(timer->flags, |
| 811 | timer->flags |= base->cpu; | 811 | (timer->flags & ~TIMER_BASEMASK) | base->cpu); |
| 812 | } | 812 | } |
| 813 | } | 813 | } |
| 814 | 814 | ||
