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 | |||
| 27 | select RTC_DRV_M48T59 | 27 | select RTC_DRV_M48T59 |
| 28 | select HAVE_DMA_ATTRS | 28 | select HAVE_DMA_ATTRS |
| 29 | select HAVE_DMA_API_DEBUG | 29 | select HAVE_DMA_API_DEBUG |
| 30 | select HAVE_ARCH_JUMP_LABEL | 30 | select HAVE_ARCH_JUMP_LABEL if SPARC64 |
| 31 | select GENERIC_IRQ_SHOW | 31 | select GENERIC_IRQ_SHOW |
| 32 | select ARCH_WANT_IPC_PARSE_VERSION | 32 | select ARCH_WANT_IPC_PARSE_VERSION |
| 33 | select GENERIC_PCI_IOMAP | 33 | 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) | |||
| 58 | { | 58 | { |
| 59 | if (tlb_type != hypervisor) { | 59 | if (tlb_type != hypervisor) { |
| 60 | touch_nmi_watchdog(); | 60 | touch_nmi_watchdog(); |
| 61 | local_irq_enable(); | ||
| 61 | } else { | 62 | } else { |
| 62 | unsigned long pstate; | 63 | unsigned long pstate; |
| 63 | 64 | ||
| 65 | local_irq_enable(); | ||
| 66 | |||
| 64 | /* The sun4v sleeping code requires that we have PSTATE.IE cleared over | 67 | /* The sun4v sleeping code requires that we have PSTATE.IE cleared over |
| 65 | * the cpu sleep hypervisor call. | 68 | * the cpu sleep hypervisor call. |
| 66 | */ | 69 | */ |
| @@ -82,7 +85,6 @@ void arch_cpu_idle(void) | |||
| 82 | : "=&r" (pstate) | 85 | : "=&r" (pstate) |
| 83 | : "i" (PSTATE_IE)); | 86 | : "i" (PSTATE_IE)); |
| 84 | } | 87 | } |
| 85 | local_irq_enable(); | ||
| 86 | } | 88 | } |
| 87 | 89 | ||
| 88 | #ifdef CONFIG_HOTPLUG_CPU | 90 | #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: | |||
| 189 | mov %i0, %l5 ! IEU1 | 189 | mov %i0, %l5 ! IEU1 |
| 190 | 5: call %l7 ! CTI Group brk forced | 190 | 5: call %l7 ! CTI Group brk forced |
| 191 | srl %i5, 0, %o5 ! IEU1 | 191 | srl %i5, 0, %o5 ! IEU1 |
| 192 | ba,a,pt %xcc, 3f | 192 | ba,pt %xcc, 3f |
| 193 | sra %o0, 0, %o0 | ||
| 193 | 194 | ||
| 194 | /* Linux native system calls enter here... */ | 195 | /* Linux native system calls enter here... */ |
| 195 | .align 32 | 196 | .align 32 |
| @@ -217,7 +218,6 @@ linux_sparc_syscall: | |||
| 217 | 3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] | 218 | 3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] |
| 218 | ret_sys_call: | 219 | ret_sys_call: |
| 219 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 | 220 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 |
| 220 | sra %o0, 0, %o0 | ||
| 221 | mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2 | 221 | mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2 |
| 222 | sllx %g2, 32, %g2 | 222 | sllx %g2, 32, %g2 |
| 223 | 223 | ||
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 @@ | |||
| 14 | #include <linux/pagemap.h> | 14 | #include <linux/pagemap.h> |
| 15 | #include <linux/vmalloc.h> | 15 | #include <linux/vmalloc.h> |
| 16 | #include <linux/kdebug.h> | 16 | #include <linux/kdebug.h> |
| 17 | #include <linux/export.h> | ||
| 17 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
| 18 | #include <linux/init.h> | 19 | #include <linux/init.h> |
| 19 | #include <linux/log2.h> | 20 | #include <linux/log2.h> |
| @@ -62,6 +63,7 @@ extern unsigned long last_valid_pfn; | |||
| 62 | static pgd_t *srmmu_swapper_pg_dir; | 63 | static pgd_t *srmmu_swapper_pg_dir; |
| 63 | 64 | ||
| 64 | const struct sparc32_cachetlb_ops *sparc32_cachetlb_ops; | 65 | const struct sparc32_cachetlb_ops *sparc32_cachetlb_ops; |
| 66 | EXPORT_SYMBOL(sparc32_cachetlb_ops); | ||
| 65 | 67 | ||
| 66 | #ifdef CONFIG_SMP | 68 | #ifdef CONFIG_SMP |
| 67 | const struct sparc32_cachetlb_ops *local_ops; | 69 | 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) | |||
| 273 | prom_halt(); | 273 | prom_halt(); |
| 274 | } | 274 | } |
| 275 | 275 | ||
| 276 | for (i = 0; i < 8; i++) { | 276 | for (i = 0; i < ARRAY_SIZE(tsb_cache_names); i++) { |
| 277 | unsigned long size = 8192 << i; | 277 | unsigned long size = 8192 << i; |
| 278 | const char *name = tsb_cache_names[i]; | 278 | const char *name = tsb_cache_names[i]; |
| 279 | 279 | ||
