diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-14 21:38:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-14 21:38:57 -0400 |
commit | 1f1e34f7231c7284f3acae37096a603f19bcd8b7 (patch) | |
tree | cbc9a61bc3a1055b7868134adea32b41af733c95 /arch | |
parent | baaae1921088079bdb8e71317b06d071511d74b1 (diff) | |
parent | 36f58113423f4588d7cf7535644fbb214414193b (diff) |
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull more MIPS fixes from Ralf Baechle:
"Another round of 4.1 MIPS fixes, one fix to a MIPS-specific #if
condition in lib/mpi, one fix to the MIPS GIC irqchip driver and one
SSB fix.
Details:
- fix handling of clock in chipco SSB driver.
- fix two MIPS-specific #if conditions to correctly work for GCC 5.1.
- fix damage to R6 pgtable bits done by XPA support.
- fix possible crash due to unloading modules that contain statically
defined platform devices.
- fix disabling of the MSA ASE on context switch to also work
correctly when a new thread/process has the CPU for the very first
time.
This is part of linux-next and has been beaten to death on
Imagination's test farm.
While things are not looking too grim this pull request also means the
rate of fixes for 4.1 remains nearly constant so I'd not be unhappy if
you'd delay the release"
* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MPI: MIPS: Fix compilation error with GCC 5.1
IRQCHIP: mips-gic: Don't nest calls to do_IRQ()
MIPS: MSA: bugfix - disable MSA correctly for new threads/processes.
MIPS: Loongson: Do not register 8250 platform device from module.
MIPS: Cobalt: Do not build MTD platform device registration code as module.
SSB: Fix handling of ssb_pmu_get_alp_clock()
MIPS: pgtable-bits: Fix XPA damage to R6 definitions.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/cobalt/Makefile | 3 | ||||
-rw-r--r-- | arch/mips/include/asm/pgtable-bits.h | 14 | ||||
-rw-r--r-- | arch/mips/include/asm/switch_to.h | 2 | ||||
-rw-r--r-- | arch/mips/loongson/common/Makefile | 4 |
4 files changed, 10 insertions, 13 deletions
diff --git a/arch/mips/cobalt/Makefile b/arch/mips/cobalt/Makefile index 558e94977942..68f0c5871adc 100644 --- a/arch/mips/cobalt/Makefile +++ b/arch/mips/cobalt/Makefile | |||
@@ -2,7 +2,6 @@ | |||
2 | # Makefile for the Cobalt micro systems family specific parts of the kernel | 2 | # Makefile for the Cobalt micro systems family specific parts of the kernel |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := buttons.o irq.o lcd.o led.o reset.o rtc.o serial.o setup.o time.o | 5 | obj-y := buttons.o irq.o lcd.o led.o mtd.o reset.o rtc.o serial.o setup.o time.o |
6 | 6 | ||
7 | obj-$(CONFIG_PCI) += pci.o | 7 | obj-$(CONFIG_PCI) += pci.o |
8 | obj-$(CONFIG_MTD_PHYSMAP) += mtd.o | ||
diff --git a/arch/mips/include/asm/pgtable-bits.h b/arch/mips/include/asm/pgtable-bits.h index 18ae5ddef118..c28a8499aec7 100644 --- a/arch/mips/include/asm/pgtable-bits.h +++ b/arch/mips/include/asm/pgtable-bits.h | |||
@@ -113,7 +113,7 @@ | |||
113 | #define _PAGE_PRESENT_SHIFT 0 | 113 | #define _PAGE_PRESENT_SHIFT 0 |
114 | #define _PAGE_PRESENT (1 << _PAGE_PRESENT_SHIFT) | 114 | #define _PAGE_PRESENT (1 << _PAGE_PRESENT_SHIFT) |
115 | /* R2 or later cores check for RI/XI support to determine _PAGE_READ */ | 115 | /* R2 or later cores check for RI/XI support to determine _PAGE_READ */ |
116 | #ifdef CONFIG_CPU_MIPSR2 | 116 | #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) |
117 | #define _PAGE_WRITE_SHIFT (_PAGE_PRESENT_SHIFT + 1) | 117 | #define _PAGE_WRITE_SHIFT (_PAGE_PRESENT_SHIFT + 1) |
118 | #define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT) | 118 | #define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT) |
119 | #else | 119 | #else |
@@ -135,16 +135,16 @@ | |||
135 | #define _PAGE_SPLITTING (1 << _PAGE_SPLITTING_SHIFT) | 135 | #define _PAGE_SPLITTING (1 << _PAGE_SPLITTING_SHIFT) |
136 | 136 | ||
137 | /* Only R2 or newer cores have the XI bit */ | 137 | /* Only R2 or newer cores have the XI bit */ |
138 | #ifdef CONFIG_CPU_MIPSR2 | 138 | #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) |
139 | #define _PAGE_NO_EXEC_SHIFT (_PAGE_SPLITTING_SHIFT + 1) | 139 | #define _PAGE_NO_EXEC_SHIFT (_PAGE_SPLITTING_SHIFT + 1) |
140 | #else | 140 | #else |
141 | #define _PAGE_GLOBAL_SHIFT (_PAGE_SPLITTING_SHIFT + 1) | 141 | #define _PAGE_GLOBAL_SHIFT (_PAGE_SPLITTING_SHIFT + 1) |
142 | #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) | 142 | #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) |
143 | #endif /* CONFIG_CPU_MIPSR2 */ | 143 | #endif /* CONFIG_CPU_MIPSR2 || CONFIG_CPU_MIPSR6 */ |
144 | 144 | ||
145 | #endif /* CONFIG_64BIT && CONFIG_MIPS_HUGE_TLB_SUPPORT */ | 145 | #endif /* CONFIG_64BIT && CONFIG_MIPS_HUGE_TLB_SUPPORT */ |
146 | 146 | ||
147 | #ifdef CONFIG_CPU_MIPSR2 | 147 | #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) |
148 | /* XI - page cannot be executed */ | 148 | /* XI - page cannot be executed */ |
149 | #ifndef _PAGE_NO_EXEC_SHIFT | 149 | #ifndef _PAGE_NO_EXEC_SHIFT |
150 | #define _PAGE_NO_EXEC_SHIFT (_PAGE_MODIFIED_SHIFT + 1) | 150 | #define _PAGE_NO_EXEC_SHIFT (_PAGE_MODIFIED_SHIFT + 1) |
@@ -160,10 +160,10 @@ | |||
160 | #define _PAGE_GLOBAL_SHIFT (_PAGE_NO_READ_SHIFT + 1) | 160 | #define _PAGE_GLOBAL_SHIFT (_PAGE_NO_READ_SHIFT + 1) |
161 | #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) | 161 | #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) |
162 | 162 | ||
163 | #else /* !CONFIG_CPU_MIPSR2 */ | 163 | #else /* !CONFIG_CPU_MIPSR2 && !CONFIG_CPU_MIPSR6 */ |
164 | #define _PAGE_GLOBAL_SHIFT (_PAGE_MODIFIED_SHIFT + 1) | 164 | #define _PAGE_GLOBAL_SHIFT (_PAGE_MODIFIED_SHIFT + 1) |
165 | #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) | 165 | #define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) |
166 | #endif /* CONFIG_CPU_MIPSR2 */ | 166 | #endif /* CONFIG_CPU_MIPSR2 || CONFIG_CPU_MIPSR6 */ |
167 | 167 | ||
168 | #define _PAGE_VALID_SHIFT (_PAGE_GLOBAL_SHIFT + 1) | 168 | #define _PAGE_VALID_SHIFT (_PAGE_GLOBAL_SHIFT + 1) |
169 | #define _PAGE_VALID (1 << _PAGE_VALID_SHIFT) | 169 | #define _PAGE_VALID (1 << _PAGE_VALID_SHIFT) |
@@ -205,7 +205,7 @@ | |||
205 | */ | 205 | */ |
206 | static inline uint64_t pte_to_entrylo(unsigned long pte_val) | 206 | static inline uint64_t pte_to_entrylo(unsigned long pte_val) |
207 | { | 207 | { |
208 | #ifdef CONFIG_CPU_MIPSR2 | 208 | #if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) |
209 | if (cpu_has_rixi) { | 209 | if (cpu_has_rixi) { |
210 | int sa; | 210 | int sa; |
211 | #ifdef CONFIG_32BIT | 211 | #ifdef CONFIG_32BIT |
diff --git a/arch/mips/include/asm/switch_to.h b/arch/mips/include/asm/switch_to.h index e92d6c4b5ed1..7163cd7fdd69 100644 --- a/arch/mips/include/asm/switch_to.h +++ b/arch/mips/include/asm/switch_to.h | |||
@@ -104,7 +104,6 @@ do { \ | |||
104 | if (test_and_clear_tsk_thread_flag(prev, TIF_USEDMSA)) \ | 104 | if (test_and_clear_tsk_thread_flag(prev, TIF_USEDMSA)) \ |
105 | __fpsave = FP_SAVE_VECTOR; \ | 105 | __fpsave = FP_SAVE_VECTOR; \ |
106 | (last) = resume(prev, next, task_thread_info(next), __fpsave); \ | 106 | (last) = resume(prev, next, task_thread_info(next), __fpsave); \ |
107 | disable_msa(); \ | ||
108 | } while (0) | 107 | } while (0) |
109 | 108 | ||
110 | #define finish_arch_switch(prev) \ | 109 | #define finish_arch_switch(prev) \ |
@@ -122,6 +121,7 @@ do { \ | |||
122 | if (cpu_has_userlocal) \ | 121 | if (cpu_has_userlocal) \ |
123 | write_c0_userlocal(current_thread_info()->tp_value); \ | 122 | write_c0_userlocal(current_thread_info()->tp_value); \ |
124 | __restore_watch(); \ | 123 | __restore_watch(); \ |
124 | disable_msa(); \ | ||
125 | } while (0) | 125 | } while (0) |
126 | 126 | ||
127 | #endif /* _ASM_SWITCH_TO_H */ | 127 | #endif /* _ASM_SWITCH_TO_H */ |
diff --git a/arch/mips/loongson/common/Makefile b/arch/mips/loongson/common/Makefile index e70c33fdb881..f2e8153e44f5 100644 --- a/arch/mips/loongson/common/Makefile +++ b/arch/mips/loongson/common/Makefile | |||
@@ -3,15 +3,13 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ | 5 | obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ |
6 | bonito-irq.o mem.o machtype.o platform.o | 6 | bonito-irq.o mem.o machtype.o platform.o serial.o |
7 | obj-$(CONFIG_PCI) += pci.o | 7 | obj-$(CONFIG_PCI) += pci.o |
8 | 8 | ||
9 | # | 9 | # |
10 | # Serial port support | 10 | # Serial port support |
11 | # | 11 | # |
12 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 12 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
13 | loongson-serial-$(CONFIG_SERIAL_8250) := serial.o | ||
14 | obj-y += $(loongson-serial-m) $(loongson-serial-y) | ||
15 | obj-$(CONFIG_LOONGSON_UART_BASE) += uart_base.o | 13 | obj-$(CONFIG_LOONGSON_UART_BASE) += uart_base.o |
16 | obj-$(CONFIG_LOONGSON_MC146818) += rtc.o | 14 | obj-$(CONFIG_LOONGSON_MC146818) += rtc.o |
17 | 15 | ||