Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
MIPS: 64-bit: Fix system lockup.
MIPS: IP28: Change to build with -mr10k-cache-barrier=store
MIPS: IP22: Fix hang in power button interrupt handler
MIPS: IP32: Fix hang on shutdown in power button interrupt handler.

+10 -15
+3 -3
arch/mips/Makefile
··· 473 # Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys 474 # 475 ifdef CONFIG_SGI_IP28 476 - ifeq ($(call cc-option-yn,-mr10k-cache-barrier=1), n) 477 - $(error gcc doesn't support needed option -mr10k-cache-barrier=1) 478 endif 479 endif 480 core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ 481 - cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=1 -I$(srctree)/arch/mips/include/asm/mach-ip28 482 load-$(CONFIG_SGI_IP28) += 0xa800000020004000 483 484 #
··· 473 # Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys 474 # 475 ifdef CONFIG_SGI_IP28 476 + ifeq ($(call cc-option-yn,-mr10k-cache-barrier=store), n) 477 + $(error gcc doesn't support needed option -mr10k-cache-barrier=store) 478 endif 479 endif 480 core-$(CONFIG_SGI_IP28) += arch/mips/sgi-ip22/ 481 + cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=store -I$(srctree)/arch/mips/include/asm/mach-ip28 482 load-$(CONFIG_SGI_IP28) += 0xa800000020004000 483 484 #
+2 -4
arch/mips/mm/tlb-r3k.c
··· 82 int cpu = smp_processor_id(); 83 84 if (cpu_context(cpu, mm) != 0) { 85 - unsigned long flags; 86 - int size; 87 88 #ifdef DEBUG_TLB 89 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", ··· 120 121 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 122 { 123 - unsigned long flags; 124 - int size; 125 126 #ifdef DEBUG_TLB 127 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", start, end);
··· 82 int cpu = smp_processor_id(); 83 84 if (cpu_context(cpu, mm) != 0) { 85 + unsigned long size, flags; 86 87 #ifdef DEBUG_TLB 88 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", ··· 121 122 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 123 { 124 + unsigned long size, flags; 125 126 #ifdef DEBUG_TLB 127 printk("[tlbrange<%lu,0x%08lx,0x%08lx>]", start, end);
+2 -4
arch/mips/mm/tlb-r4k.c
··· 117 int cpu = smp_processor_id(); 118 119 if (cpu_context(cpu, mm) != 0) { 120 - unsigned long flags; 121 - int size; 122 123 ENTER_CRITICAL(flags); 124 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; ··· 159 160 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 161 { 162 - unsigned long flags; 163 - int size; 164 165 ENTER_CRITICAL(flags); 166 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
··· 117 int cpu = smp_processor_id(); 118 119 if (cpu_context(cpu, mm) != 0) { 120 + unsigned long size, flags; 121 122 ENTER_CRITICAL(flags); 123 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; ··· 160 161 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 162 { 163 + unsigned long size, flags; 164 165 ENTER_CRITICAL(flags); 166 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
+1 -2
arch/mips/mm/tlb-r8k.c
··· 111 /* Usable for KV1 addresses only! */ 112 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 113 { 114 - unsigned long flags; 115 - int size; 116 117 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 118 size = (size + 1) >> 1;
··· 111 /* Usable for KV1 addresses only! */ 112 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) 113 { 114 + unsigned long size, flags; 115 116 size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; 117 size = (size + 1) >> 1;
+1 -1
arch/mips/sgi-ip22/ip22-reset.c
··· 148 149 if (sgint->istat1 & SGINT_ISTAT1_PWR) { 150 /* Wait until interrupt goes away */ 151 - disable_irq(SGI_PANEL_IRQ); 152 init_timer(&debounce_timer); 153 debounce_timer.function = debounce; 154 debounce_timer.expires = jiffies + 5;
··· 148 149 if (sgint->istat1 & SGINT_ISTAT1_PWR) { 150 /* Wait until interrupt goes away */ 151 + disable_irq_nosync(SGI_PANEL_IRQ); 152 init_timer(&debounce_timer); 153 debounce_timer.function = debounce; 154 debounce_timer.expires = jiffies + 5;
+1 -1
arch/mips/sgi-ip32/ip32-reset.c
··· 145 "%s: RTC IRQ without RTC_IRQF\n", __func__); 146 } 147 /* Wait until interrupt goes away */ 148 - disable_irq(MACEISA_RTC_IRQ); 149 init_timer(&debounce_timer); 150 debounce_timer.function = debounce; 151 debounce_timer.expires = jiffies + 50;
··· 145 "%s: RTC IRQ without RTC_IRQF\n", __func__); 146 } 147 /* Wait until interrupt goes away */ 148 + disable_irq_nosync(MACEISA_RTC_IRQ); 149 init_timer(&debounce_timer); 150 debounce_timer.function = debounce; 151 debounce_timer.expires = jiffies + 50;