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