diff options
| author | Ingo Molnar <mingo@kernel.org> | 2014-07-28 04:00:33 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2014-07-28 04:00:33 -0400 |
| commit | 5030c69755416d19516c0a61cd988a0e0062e041 (patch) | |
| tree | ca4d3088428cf033420f9df9111d796650bc59e5 /arch/arc/kernel | |
| parent | 2336ebc32676df5b794acfe0c980583ec6c05f34 (diff) | |
| parent | 64aa90f26c06e1cb2aacfb98a7d0eccfbd6c1a91 (diff) | |
Merge tag 'v3.16-rc7' into perf/core, to merge in the latest fixes before applying new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/arc/kernel')
| -rw-r--r-- | arch/arc/kernel/ctx_sw_asm.S | 2 | ||||
| -rw-r--r-- | arch/arc/kernel/devtree.c | 2 | ||||
| -rw-r--r-- | arch/arc/kernel/head.S | 7 | ||||
| -rw-r--r-- | arch/arc/kernel/ptrace.c | 4 | ||||
| -rw-r--r-- | arch/arc/kernel/smp.c | 15 | ||||
| -rw-r--r-- | arch/arc/kernel/vmlinux.lds.S | 2 |
6 files changed, 24 insertions, 8 deletions
diff --git a/arch/arc/kernel/ctx_sw_asm.S b/arch/arc/kernel/ctx_sw_asm.S index 2ff0347a2fd7..e248594097e7 100644 --- a/arch/arc/kernel/ctx_sw_asm.S +++ b/arch/arc/kernel/ctx_sw_asm.S | |||
| @@ -10,9 +10,9 @@ | |||
| 10 | * -This is the more "natural" hand written assembler | 10 | * -This is the more "natural" hand written assembler |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/linkage.h> | ||
| 13 | #include <asm/entry.h> /* For the SAVE_* macros */ | 14 | #include <asm/entry.h> /* For the SAVE_* macros */ |
| 14 | #include <asm/asm-offsets.h> | 15 | #include <asm/asm-offsets.h> |
| 15 | #include <asm/linkage.h> | ||
| 16 | 16 | ||
| 17 | #define KSP_WORD_OFF ((TASK_THREAD + THREAD_KSP) / 4) | 17 | #define KSP_WORD_OFF ((TASK_THREAD + THREAD_KSP) / 4) |
| 18 | 18 | ||
diff --git a/arch/arc/kernel/devtree.c b/arch/arc/kernel/devtree.c index 0b3ef4025d89..fffdb5e41b20 100644 --- a/arch/arc/kernel/devtree.c +++ b/arch/arc/kernel/devtree.c | |||
| @@ -41,7 +41,7 @@ const struct machine_desc * __init setup_machine_fdt(void *dt) | |||
| 41 | { | 41 | { |
| 42 | const struct machine_desc *mdesc; | 42 | const struct machine_desc *mdesc; |
| 43 | unsigned long dt_root; | 43 | unsigned long dt_root; |
| 44 | void *clk; | 44 | const void *clk; |
| 45 | int len; | 45 | int len; |
| 46 | 46 | ||
| 47 | if (!early_init_dt_scan(dt)) | 47 | if (!early_init_dt_scan(dt)) |
diff --git a/arch/arc/kernel/head.S b/arch/arc/kernel/head.S index 07a58f2d3077..4d2481bd8b98 100644 --- a/arch/arc/kernel/head.S +++ b/arch/arc/kernel/head.S | |||
| @@ -77,10 +77,11 @@ stext: | |||
| 77 | ; Clear BSS before updating any globals | 77 | ; Clear BSS before updating any globals |
| 78 | ; XXX: use ZOL here | 78 | ; XXX: use ZOL here |
| 79 | mov r5, __bss_start | 79 | mov r5, __bss_start |
| 80 | mov r6, __bss_stop | 80 | sub r6, __bss_stop, r5 |
| 81 | lsr.f lp_count, r6, 2 | ||
| 82 | lpnz 1f | ||
| 83 | st.ab 0, [r5, 4] | ||
| 81 | 1: | 84 | 1: |
| 82 | st.ab 0, [r5,4] | ||
| 83 | brlt r5, r6, 1b | ||
| 84 | 85 | ||
| 85 | ; Uboot - kernel ABI | 86 | ; Uboot - kernel ABI |
| 86 | ; r0 = [0] No uboot interaction, [1] cmdline in r2, [2] DTB in r2 | 87 | ; r0 = [0] No uboot interaction, [1] cmdline in r2, [2] DTB in r2 |
diff --git a/arch/arc/kernel/ptrace.c b/arch/arc/kernel/ptrace.c index 5d76706139dd..13b3ffb27a38 100644 --- a/arch/arc/kernel/ptrace.c +++ b/arch/arc/kernel/ptrace.c | |||
| @@ -146,6 +146,10 @@ long arch_ptrace(struct task_struct *child, long request, | |||
| 146 | pr_debug("REQ=%ld: ADDR =0x%lx, DATA=0x%lx)\n", request, addr, data); | 146 | pr_debug("REQ=%ld: ADDR =0x%lx, DATA=0x%lx)\n", request, addr, data); |
| 147 | 147 | ||
| 148 | switch (request) { | 148 | switch (request) { |
| 149 | case PTRACE_GET_THREAD_AREA: | ||
| 150 | ret = put_user(task_thread_info(child)->thr_ptr, | ||
| 151 | (unsigned long __user *)data); | ||
| 152 | break; | ||
| 149 | default: | 153 | default: |
| 150 | ret = ptrace_request(child, request, addr, data); | 154 | ret = ptrace_request(child, request, addr, data); |
| 151 | break; | 155 | break; |
diff --git a/arch/arc/kernel/smp.c b/arch/arc/kernel/smp.c index cf90b6f4d3e0..c802bb500602 100644 --- a/arch/arc/kernel/smp.c +++ b/arch/arc/kernel/smp.c | |||
| @@ -337,8 +337,19 @@ irqreturn_t do_IPI(int irq, void *dev_id) | |||
| 337 | * API called by platform code to hookup arch-common ISR to their IPI IRQ | 337 | * API called by platform code to hookup arch-common ISR to their IPI IRQ |
| 338 | */ | 338 | */ |
| 339 | static DEFINE_PER_CPU(int, ipi_dev); | 339 | static DEFINE_PER_CPU(int, ipi_dev); |
| 340 | |||
| 341 | static struct irqaction arc_ipi_irq = { | ||
| 342 | .name = "IPI Interrupt", | ||
| 343 | .flags = IRQF_PERCPU, | ||
| 344 | .handler = do_IPI, | ||
| 345 | }; | ||
| 346 | |||
| 340 | int smp_ipi_irq_setup(int cpu, int irq) | 347 | int smp_ipi_irq_setup(int cpu, int irq) |
| 341 | { | 348 | { |
| 342 | int *dev_id = &per_cpu(ipi_dev, smp_processor_id()); | 349 | if (!cpu) |
| 343 | return request_percpu_irq(irq, do_IPI, "IPI Interrupt", dev_id); | 350 | return setup_irq(irq, &arc_ipi_irq); |
| 351 | else | ||
| 352 | arch_unmask_irq(irq); | ||
| 353 | |||
| 354 | return 0; | ||
| 344 | } | 355 | } |
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S index 2555f5886af6..dd35bde39f69 100644 --- a/arch/arc/kernel/vmlinux.lds.S +++ b/arch/arc/kernel/vmlinux.lds.S | |||
| @@ -116,7 +116,7 @@ SECTIONS | |||
| 116 | 116 | ||
| 117 | _edata = .; | 117 | _edata = .; |
| 118 | 118 | ||
| 119 | BSS_SECTION(0, 0, 0) | 119 | BSS_SECTION(4, 4, 4) |
| 120 | 120 | ||
| 121 | #ifdef CONFIG_ARC_DW2_UNWIND | 121 | #ifdef CONFIG_ARC_DW2_UNWIND |
| 122 | . = ALIGN(PAGE_SIZE); | 122 | . = ALIGN(PAGE_SIZE); |
