diff options
Diffstat (limited to 'arch/sparc')
| -rw-r--r-- | arch/sparc/Kconfig | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/process_64.c | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/syscalls.S | 4 | ||||
| -rw-r--r-- | arch/sparc/mm/srmmu.c | 2 | ||||
| -rw-r--r-- | arch/sparc/mm/tsb.c | 2 | 
5 files changed, 9 insertions, 5 deletions
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index c51efdcd07a2..7d8b7e94b93b 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -27,7 +27,7 @@ config SPARC  	select RTC_DRV_M48T59  	select HAVE_DMA_ATTRS  	select HAVE_DMA_API_DEBUG -	select HAVE_ARCH_JUMP_LABEL +	select HAVE_ARCH_JUMP_LABEL if SPARC64  	select GENERIC_IRQ_SHOW  	select ARCH_WANT_IPC_PARSE_VERSION  	select GENERIC_PCI_IOMAP diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 32a280ec38c1..d7b4967f8fa6 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c @@ -58,9 +58,12 @@ void arch_cpu_idle(void)  {  	if (tlb_type != hypervisor) {  		touch_nmi_watchdog(); +		local_irq_enable();  	} else {  		unsigned long pstate; +		local_irq_enable(); +                  /* The sun4v sleeping code requires that we have PSTATE.IE cleared over                   * the cpu sleep hypervisor call.                   */ @@ -82,7 +85,6 @@ void arch_cpu_idle(void)  			: "=&r" (pstate)  			: "i" (PSTATE_IE));  	} -	local_irq_enable();  }  #ifdef CONFIG_HOTPLUG_CPU diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S index 87729fff13b9..33a17e7b3ccd 100644 --- a/arch/sparc/kernel/syscalls.S +++ b/arch/sparc/kernel/syscalls.S @@ -189,7 +189,8 @@ linux_sparc_syscall32:  	 mov	%i0, %l5				! IEU1  5:	call	%l7					! CTI	Group brk forced  	 srl	%i5, 0, %o5				! IEU1 -	ba,a,pt	%xcc, 3f +	ba,pt	%xcc, 3f +	 sra	%o0, 0, %o0  	/* Linux native system calls enter here... */  	.align	32 @@ -217,7 +218,6 @@ linux_sparc_syscall:  3:	stx	%o0, [%sp + PTREGS_OFF + PT_V9_I0]  ret_sys_call:  	ldx	[%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 -	sra	%o0, 0, %o0  	mov	%ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2  	sllx	%g2, 32, %g2 diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index 869023abe5a4..cfbe53c17b0d 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c @@ -14,6 +14,7 @@  #include <linux/pagemap.h>  #include <linux/vmalloc.h>  #include <linux/kdebug.h> +#include <linux/export.h>  #include <linux/kernel.h>  #include <linux/init.h>  #include <linux/log2.h> @@ -62,6 +63,7 @@ extern unsigned long last_valid_pfn;  static pgd_t *srmmu_swapper_pg_dir;  const struct sparc32_cachetlb_ops *sparc32_cachetlb_ops; +EXPORT_SYMBOL(sparc32_cachetlb_ops);  #ifdef CONFIG_SMP  const struct sparc32_cachetlb_ops *local_ops; diff --git a/arch/sparc/mm/tsb.c b/arch/sparc/mm/tsb.c index 3b3a360b429a..f5d506fdddad 100644 --- a/arch/sparc/mm/tsb.c +++ b/arch/sparc/mm/tsb.c @@ -273,7 +273,7 @@ void __init pgtable_cache_init(void)  		prom_halt();  	} -	for (i = 0; i < 8; i++) { +	for (i = 0; i < ARRAY_SIZE(tsb_cache_names); i++) {  		unsigned long size = 8192 << i;  		const char *name = tsb_cache_names[i];  | 
