diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-10 16:24:25 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-10 16:24:25 -0800 |
commit | c6de7f1754bd474019c60d6f076fa3f704e46b78 (patch) | |
tree | 76ac9833860756c78671ff39b76b5077569491ad /arch/metag | |
parent | 52e9a33333fc337d03ffb865048f9ccae8552a8d (diff) | |
parent | f23d0e2468bc538e8c33223af8963ef40b7515bf (diff) |
Merge tag 'metag-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag
Pull metag arch updates from James Hogan:
"A fix for 4KiB stacks with SMP, and a change of maintenance status to
'Odd Fixes'"
* tag 'metag-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
MAINTAINERS: Change Meta arch port status to Odd Fixes
metag: Turn irq_ctx_* macros into static inlines
metag: SMP: Fix 4KiB stack setup on secondary CPUs
Diffstat (limited to 'arch/metag')
-rw-r--r-- | arch/metag/include/asm/irq.h | 8 | ||||
-rw-r--r-- | arch/metag/kernel/smp.c | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/arch/metag/include/asm/irq.h b/arch/metag/include/asm/irq.h index ad6bd0edbc3b..6ac6d4a051dd 100644 --- a/arch/metag/include/asm/irq.h +++ b/arch/metag/include/asm/irq.h @@ -6,8 +6,12 @@ extern void irq_ctx_init(int cpu); extern void irq_ctx_exit(int cpu); # define __ARCH_HAS_DO_SOFTIRQ #else -# define irq_ctx_init(cpu) do { } while (0) -# define irq_ctx_exit(cpu) do { } while (0) +static inline void irq_ctx_init(int cpu) +{ +} +static inline void irq_ctx_exit(int cpu) +{ +} #endif void tbi_startup_interrupt(int); diff --git a/arch/metag/kernel/smp.c b/arch/metag/kernel/smp.c index ac3a199e33e7..c3c6f0864881 100644 --- a/arch/metag/kernel/smp.c +++ b/arch/metag/kernel/smp.c @@ -312,6 +312,7 @@ void cpu_die(void) { local_irq_disable(); idle_task_exit(); + irq_ctx_exit(smp_processor_id()); (void)cpu_report_death(); @@ -366,6 +367,7 @@ asmlinkage void secondary_start_kernel(void) panic("No TBI found!"); per_cpu_trap_init(cpu); + irq_ctx_init(cpu); preempt_disable(); |