diff options
| author | Ralf Baechle <ralf@linux-mips.org> | 2015-11-12 05:36:03 -0500 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2015-11-12 05:36:03 -0500 |
| commit | da34232641a91ca785a787c23c158488e459b938 (patch) | |
| tree | 8be0342fa443f92a7e0f36a5c11cf094af2747d4 | |
| parent | bf463f2f7510771db180908507005379850dade0 (diff) | |
| parent | 3bfb7224566593219dbd67474dacb23ef7c080e3 (diff) | |
Merge branch '4.3-fixes' into mips-for-linux-next
| -rw-r--r-- | arch/mips/include/asm/atomic.h | 2 | ||||
| -rw-r--r-- | arch/mips/include/asm/cdmm.h | 11 | ||||
| -rw-r--r-- | arch/mips/kernel/idle.c | 5 | ||||
| -rw-r--r-- | arch/mips/kernel/traps.c | 2 | ||||
| -rw-r--r-- | arch/mips/kernel/vmlinux.lds.S | 10 |
5 files changed, 26 insertions, 4 deletions
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h index 4c42fd9af777..b34781752244 100644 --- a/arch/mips/include/asm/atomic.h +++ b/arch/mips/include/asm/atomic.h | |||
| @@ -507,7 +507,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
| 507 | * @u: ...unless v is equal to u. | 507 | * @u: ...unless v is equal to u. |
| 508 | * | 508 | * |
| 509 | * Atomically adds @a to @v, so long as it was not @u. | 509 | * Atomically adds @a to @v, so long as it was not @u. |
| 510 | * Returns the old value of @v. | 510 | * Returns true iff @v was not @u. |
| 511 | */ | 511 | */ |
| 512 | static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) | 512 | static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) |
| 513 | { | 513 | { |
diff --git a/arch/mips/include/asm/cdmm.h b/arch/mips/include/asm/cdmm.h index bece2064cc8c..c06dbf8ba937 100644 --- a/arch/mips/include/asm/cdmm.h +++ b/arch/mips/include/asm/cdmm.h | |||
| @@ -84,6 +84,17 @@ void mips_cdmm_driver_unregister(struct mips_cdmm_driver *); | |||
| 84 | module_driver(__mips_cdmm_driver, mips_cdmm_driver_register, \ | 84 | module_driver(__mips_cdmm_driver, mips_cdmm_driver_register, \ |
| 85 | mips_cdmm_driver_unregister) | 85 | mips_cdmm_driver_unregister) |
| 86 | 86 | ||
| 87 | /* | ||
| 88 | * builtin_mips_cdmm_driver() - Helper macro for drivers that don't do anything | ||
| 89 | * special in init and have no exit. This eliminates some boilerplate. Each | ||
| 90 | * driver may only use this macro once, and calling it replaces device_initcall | ||
| 91 | * (or in some cases, the legacy __initcall). This is meant to be a direct | ||
| 92 | * parallel of module_mips_cdmm_driver() above but without the __exit stuff that | ||
| 93 | * is not used for builtin cases. | ||
| 94 | */ | ||
| 95 | #define builtin_mips_cdmm_driver(__mips_cdmm_driver) \ | ||
| 96 | builtin_driver(__mips_cdmm_driver, mips_cdmm_driver_register) | ||
| 97 | |||
| 87 | /* drivers/tty/mips_ejtag_fdc.c */ | 98 | /* drivers/tty/mips_ejtag_fdc.c */ |
| 88 | 99 | ||
| 89 | #ifdef CONFIG_MIPS_EJTAG_FDC_EARLYCON | 100 | #ifdef CONFIG_MIPS_EJTAG_FDC_EARLYCON |
diff --git a/arch/mips/kernel/idle.c b/arch/mips/kernel/idle.c index 35af61530de1..46794d64c0bf 100644 --- a/arch/mips/kernel/idle.c +++ b/arch/mips/kernel/idle.c | |||
| @@ -171,7 +171,6 @@ void __init check_wait(void) | |||
| 171 | case CPU_BMIPS3300: | 171 | case CPU_BMIPS3300: |
| 172 | case CPU_BMIPS4350: | 172 | case CPU_BMIPS4350: |
| 173 | case CPU_BMIPS4380: | 173 | case CPU_BMIPS4380: |
| 174 | case CPU_BMIPS5000: | ||
| 175 | case CPU_CAVIUM_OCTEON: | 174 | case CPU_CAVIUM_OCTEON: |
| 176 | case CPU_CAVIUM_OCTEON_PLUS: | 175 | case CPU_CAVIUM_OCTEON_PLUS: |
| 177 | case CPU_CAVIUM_OCTEON2: | 176 | case CPU_CAVIUM_OCTEON2: |
| @@ -182,7 +181,9 @@ void __init check_wait(void) | |||
| 182 | case CPU_XLP: | 181 | case CPU_XLP: |
| 183 | cpu_wait = r4k_wait; | 182 | cpu_wait = r4k_wait; |
| 184 | break; | 183 | break; |
| 185 | 184 | case CPU_BMIPS5000: | |
| 185 | cpu_wait = r4k_wait_irqoff; | ||
| 186 | break; | ||
| 186 | case CPU_RM7000: | 187 | case CPU_RM7000: |
| 187 | cpu_wait = rm7k_wait_irqoff; | 188 | cpu_wait = rm7k_wait_irqoff; |
| 188 | break; | 189 | break; |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 4e106d52f304..886cb1976e90 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
| @@ -1857,12 +1857,14 @@ void __noreturn nmi_exception_handler(struct pt_regs *regs) | |||
| 1857 | { | 1857 | { |
| 1858 | char str[100]; | 1858 | char str[100]; |
| 1859 | 1859 | ||
| 1860 | nmi_enter(); | ||
| 1860 | raw_notifier_call_chain(&nmi_chain, 0, regs); | 1861 | raw_notifier_call_chain(&nmi_chain, 0, regs); |
| 1861 | bust_spinlocks(1); | 1862 | bust_spinlocks(1); |
| 1862 | snprintf(str, 100, "CPU%d NMI taken, CP0_EPC=%lx\n", | 1863 | snprintf(str, 100, "CPU%d NMI taken, CP0_EPC=%lx\n", |
| 1863 | smp_processor_id(), regs->cp0_epc); | 1864 | smp_processor_id(), regs->cp0_epc); |
| 1864 | regs->cp0_epc = read_c0_errorepc(); | 1865 | regs->cp0_epc = read_c0_errorepc(); |
| 1865 | die(str, regs); | 1866 | die(str, regs); |
| 1867 | nmi_exit(); | ||
| 1866 | } | 1868 | } |
| 1867 | 1869 | ||
| 1868 | #define VECTORSPACING 0x100 /* for EI/VI mode */ | 1870 | #define VECTORSPACING 0x100 /* for EI/VI mode */ |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index f4c23d9023be..0a93e83cd014 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
| @@ -17,7 +17,9 @@ OUTPUT_ARCH(mips) | |||
| 17 | ENTRY(kernel_entry) | 17 | ENTRY(kernel_entry) |
| 18 | PHDRS { | 18 | PHDRS { |
| 19 | text PT_LOAD FLAGS(7); /* RWX */ | 19 | text PT_LOAD FLAGS(7); /* RWX */ |
| 20 | #ifndef CONFIG_CAVIUM_OCTEON_SOC | ||
| 20 | note PT_NOTE FLAGS(4); /* R__ */ | 21 | note PT_NOTE FLAGS(4); /* R__ */ |
| 22 | #endif /* CAVIUM_OCTEON_SOC */ | ||
| 21 | } | 23 | } |
| 22 | 24 | ||
| 23 | #ifdef CONFIG_32BIT | 25 | #ifdef CONFIG_32BIT |
| @@ -71,7 +73,12 @@ SECTIONS | |||
| 71 | __stop___dbe_table = .; | 73 | __stop___dbe_table = .; |
| 72 | } | 74 | } |
| 73 | 75 | ||
| 74 | NOTES :text :note | 76 | #ifdef CONFIG_CAVIUM_OCTEON_SOC |
| 77 | #define NOTES_HEADER | ||
| 78 | #else /* CONFIG_CAVIUM_OCTEON_SOC */ | ||
| 79 | #define NOTES_HEADER :note | ||
| 80 | #endif /* CONFIG_CAVIUM_OCTEON_SOC */ | ||
| 81 | NOTES :text NOTES_HEADER | ||
| 75 | .dummy : { *(.dummy) } :text | 82 | .dummy : { *(.dummy) } :text |
| 76 | 83 | ||
| 77 | _sdata = .; /* Start of data section */ | 84 | _sdata = .; /* Start of data section */ |
| @@ -186,6 +193,7 @@ SECTIONS | |||
| 186 | DISCARDS | 193 | DISCARDS |
| 187 | /DISCARD/ : { | 194 | /DISCARD/ : { |
| 188 | /* ABI crap starts here */ | 195 | /* ABI crap starts here */ |
| 196 | *(.MIPS.abiflags) | ||
| 189 | *(.MIPS.options) | 197 | *(.MIPS.options) |
| 190 | *(.options) | 198 | *(.options) |
| 191 | *(.pdr) | 199 | *(.pdr) |
