diff options
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/Makefile | 15 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/compat_signal.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/cpcmd.c | 16 | ||||
-rw-r--r-- | arch/s390/kernel/entry64.S | 18 | ||||
-rw-r--r-- | arch/s390/kernel/head.S | 4 | ||||
-rw-r--r-- | arch/s390/kernel/machine_kexec.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/module.c | 12 | ||||
-rw-r--r-- | arch/s390/kernel/process.c | 12 | ||||
-rw-r--r-- | arch/s390/kernel/ptrace.c | 24 | ||||
-rw-r--r-- | arch/s390/kernel/reipl_diag.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 14 | ||||
-rw-r--r-- | arch/s390/kernel/signal.c | 8 | ||||
-rw-r--r-- | arch/s390/kernel/smp.c | 14 | ||||
-rw-r--r-- | arch/s390/kernel/sys_s390.c | 12 | ||||
-rw-r--r-- | arch/s390/kernel/traps.c | 10 | ||||
-rw-r--r-- | arch/s390/kernel/vmlinux.lds.S | 2 |
17 files changed, 80 insertions, 89 deletions
diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile index 7434c32bc631..4865e4b49464 100644 --- a/arch/s390/kernel/Makefile +++ b/arch/s390/kernel/Makefile | |||
@@ -8,31 +8,26 @@ obj-y := bitmap.o traps.o time.o process.o \ | |||
8 | setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \ | 8 | setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \ |
9 | semaphore.o s390_ext.o debug.o profile.o irq.o reipl_diag.o | 9 | semaphore.o s390_ext.o debug.o profile.o irq.o reipl_diag.o |
10 | 10 | ||
11 | obj-y += $(if $(CONFIG_64BIT),entry64.o,entry.o) | ||
12 | obj-y += $(if $(CONFIG_64BIT),reipl64.o,reipl.o) | ||
13 | |||
11 | extra-y += head.o init_task.o vmlinux.lds | 14 | extra-y += head.o init_task.o vmlinux.lds |
12 | 15 | ||
13 | obj-$(CONFIG_MODULES) += s390_ksyms.o module.o | 16 | obj-$(CONFIG_MODULES) += s390_ksyms.o module.o |
14 | obj-$(CONFIG_SMP) += smp.o | 17 | obj-$(CONFIG_SMP) += smp.o |
15 | 18 | ||
16 | obj-$(CONFIG_S390_SUPPORT) += compat_linux.o compat_signal.o \ | 19 | obj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o \ |
17 | compat_ioctl.o compat_wrapper.o \ | 20 | compat_ioctl.o compat_wrapper.o \ |
18 | compat_exec_domain.o | 21 | compat_exec_domain.o |
19 | obj-$(CONFIG_BINFMT_ELF32) += binfmt_elf32.o | 22 | obj-$(CONFIG_BINFMT_ELF32) += binfmt_elf32.o |
20 | 23 | ||
21 | obj-$(CONFIG_ARCH_S390_31) += entry.o reipl.o | ||
22 | obj-$(CONFIG_ARCH_S390X) += entry64.o reipl64.o | ||
23 | |||
24 | obj-$(CONFIG_VIRT_TIMER) += vtime.o | 24 | obj-$(CONFIG_VIRT_TIMER) += vtime.o |
25 | 25 | ||
26 | # Kexec part | 26 | # Kexec part |
27 | S390_KEXEC_OBJS := machine_kexec.o crash.o | 27 | S390_KEXEC_OBJS := machine_kexec.o crash.o |
28 | ifeq ($(CONFIG_ARCH_S390X),y) | 28 | S390_KEXEC_OBJS += $(if $(CONFIG_64BIT),relocate_kernel64.o,relocate_kernel.o) |
29 | S390_KEXEC_OBJS += relocate_kernel64.o | ||
30 | else | ||
31 | S390_KEXEC_OBJS += relocate_kernel.o | ||
32 | endif | ||
33 | obj-$(CONFIG_KEXEC) += $(S390_KEXEC_OBJS) | 29 | obj-$(CONFIG_KEXEC) += $(S390_KEXEC_OBJS) |
34 | 30 | ||
35 | |||
36 | # | 31 | # |
37 | # This is just to get the dependencies... | 32 | # This is just to get the dependencies... |
38 | # | 33 | # |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index ed877d0f27e6..41b197a3f3a3 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -279,7 +279,7 @@ asmlinkage long sys32_getegid16(void) | |||
279 | 279 | ||
280 | static inline long get_tv32(struct timeval *o, struct compat_timeval *i) | 280 | static inline long get_tv32(struct timeval *o, struct compat_timeval *i) |
281 | { | 281 | { |
282 | return (!access_ok(VERIFY_READ, tv32, sizeof(*tv32)) || | 282 | return (!access_ok(VERIFY_READ, o, sizeof(*o)) || |
283 | (__get_user(o->tv_sec, &i->tv_sec) || | 283 | (__get_user(o->tv_sec, &i->tv_sec) || |
284 | __get_user(o->tv_usec, &i->tv_usec))); | 284 | __get_user(o->tv_usec, &i->tv_usec))); |
285 | } | 285 | } |
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 4ff6808456ea..fa2b3bc22f20 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -467,8 +467,6 @@ asmlinkage long sys32_rt_sigreturn(struct pt_regs *regs) | |||
467 | if (err) | 467 | if (err) |
468 | goto badframe; | 468 | goto badframe; |
469 | 469 | ||
470 | /* It is more difficult to avoid calling this function than to | ||
471 | call it and ignore errors. */ | ||
472 | set_fs (KERNEL_DS); | 470 | set_fs (KERNEL_DS); |
473 | do_sigaltstack((stack_t __user *)&st, NULL, regs->gprs[15]); | 471 | do_sigaltstack((stack_t __user *)&st, NULL, regs->gprs[15]); |
474 | set_fs (old_fs); | 472 | set_fs (old_fs); |
diff --git a/arch/s390/kernel/cpcmd.c b/arch/s390/kernel/cpcmd.c index d47fecb42cc5..4ef44e536b2c 100644 --- a/arch/s390/kernel/cpcmd.c +++ b/arch/s390/kernel/cpcmd.c | |||
@@ -39,7 +39,7 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
39 | 39 | ||
40 | if (response != NULL && rlen > 0) { | 40 | if (response != NULL && rlen > 0) { |
41 | memset(response, 0, rlen); | 41 | memset(response, 0, rlen); |
42 | #ifndef CONFIG_ARCH_S390X | 42 | #ifndef CONFIG_64BIT |
43 | asm volatile ( "lra 2,0(%2)\n" | 43 | asm volatile ( "lra 2,0(%2)\n" |
44 | "lr 4,%3\n" | 44 | "lr 4,%3\n" |
45 | "o 4,%6\n" | 45 | "o 4,%6\n" |
@@ -55,7 +55,7 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
55 | : "a" (cpcmd_buf), "d" (cmdlen), | 55 | : "a" (cpcmd_buf), "d" (cmdlen), |
56 | "a" (response), "d" (rlen), "m" (mask) | 56 | "a" (response), "d" (rlen), "m" (mask) |
57 | : "cc", "2", "3", "4", "5" ); | 57 | : "cc", "2", "3", "4", "5" ); |
58 | #else /* CONFIG_ARCH_S390X */ | 58 | #else /* CONFIG_64BIT */ |
59 | asm volatile ( "lrag 2,0(%2)\n" | 59 | asm volatile ( "lrag 2,0(%2)\n" |
60 | "lgr 4,%3\n" | 60 | "lgr 4,%3\n" |
61 | "o 4,%6\n" | 61 | "o 4,%6\n" |
@@ -73,11 +73,11 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
73 | : "a" (cpcmd_buf), "d" (cmdlen), | 73 | : "a" (cpcmd_buf), "d" (cmdlen), |
74 | "a" (response), "d" (rlen), "m" (mask) | 74 | "a" (response), "d" (rlen), "m" (mask) |
75 | : "cc", "2", "3", "4", "5" ); | 75 | : "cc", "2", "3", "4", "5" ); |
76 | #endif /* CONFIG_ARCH_S390X */ | 76 | #endif /* CONFIG_64BIT */ |
77 | EBCASC(response, rlen); | 77 | EBCASC(response, rlen); |
78 | } else { | 78 | } else { |
79 | return_len = 0; | 79 | return_len = 0; |
80 | #ifndef CONFIG_ARCH_S390X | 80 | #ifndef CONFIG_64BIT |
81 | asm volatile ( "lra 2,0(%1)\n" | 81 | asm volatile ( "lra 2,0(%1)\n" |
82 | "lr 3,%2\n" | 82 | "lr 3,%2\n" |
83 | "diag 2,3,0x8\n" | 83 | "diag 2,3,0x8\n" |
@@ -85,7 +85,7 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
85 | : "=d" (return_code) | 85 | : "=d" (return_code) |
86 | : "a" (cpcmd_buf), "d" (cmdlen) | 86 | : "a" (cpcmd_buf), "d" (cmdlen) |
87 | : "2", "3" ); | 87 | : "2", "3" ); |
88 | #else /* CONFIG_ARCH_S390X */ | 88 | #else /* CONFIG_64BIT */ |
89 | asm volatile ( "lrag 2,0(%1)\n" | 89 | asm volatile ( "lrag 2,0(%1)\n" |
90 | "lgr 3,%2\n" | 90 | "lgr 3,%2\n" |
91 | "sam31\n" | 91 | "sam31\n" |
@@ -95,7 +95,7 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
95 | : "=d" (return_code) | 95 | : "=d" (return_code) |
96 | : "a" (cpcmd_buf), "d" (cmdlen) | 96 | : "a" (cpcmd_buf), "d" (cmdlen) |
97 | : "2", "3" ); | 97 | : "2", "3" ); |
98 | #endif /* CONFIG_ARCH_S390X */ | 98 | #endif /* CONFIG_64BIT */ |
99 | } | 99 | } |
100 | spin_unlock_irqrestore(&cpcmd_lock, flags); | 100 | spin_unlock_irqrestore(&cpcmd_lock, flags); |
101 | if (response_code != NULL) | 101 | if (response_code != NULL) |
@@ -105,7 +105,7 @@ int __cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
105 | 105 | ||
106 | EXPORT_SYMBOL(__cpcmd); | 106 | EXPORT_SYMBOL(__cpcmd); |
107 | 107 | ||
108 | #ifdef CONFIG_ARCH_S390X | 108 | #ifdef CONFIG_64BIT |
109 | int cpcmd(const char *cmd, char *response, int rlen, int *response_code) | 109 | int cpcmd(const char *cmd, char *response, int rlen, int *response_code) |
110 | { | 110 | { |
111 | char *lowbuf; | 111 | char *lowbuf; |
@@ -129,4 +129,4 @@ int cpcmd(const char *cmd, char *response, int rlen, int *response_code) | |||
129 | } | 129 | } |
130 | 130 | ||
131 | EXPORT_SYMBOL(cpcmd); | 131 | EXPORT_SYMBOL(cpcmd); |
132 | #endif /* CONFIG_ARCH_S390X */ | 132 | #endif /* CONFIG_64BIT */ |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 4eb71ffcf484..369ab4413ec7 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -213,7 +213,7 @@ sysc_nr_ok: | |||
213 | mvc SP_ARGS(8,%r15),SP_R7(%r15) | 213 | mvc SP_ARGS(8,%r15),SP_R7(%r15) |
214 | sysc_do_restart: | 214 | sysc_do_restart: |
215 | larl %r10,sys_call_table | 215 | larl %r10,sys_call_table |
216 | #ifdef CONFIG_S390_SUPPORT | 216 | #ifdef CONFIG_COMPAT |
217 | tm __TI_flags+5(%r9),(_TIF_31BIT>>16) # running in 31 bit mode ? | 217 | tm __TI_flags+5(%r9),(_TIF_31BIT>>16) # running in 31 bit mode ? |
218 | jno sysc_noemu | 218 | jno sysc_noemu |
219 | larl %r10,sys_call_table_emu # use 31 bit emulation system calls | 219 | larl %r10,sys_call_table_emu # use 31 bit emulation system calls |
@@ -361,7 +361,7 @@ sys_clone_glue: | |||
361 | la %r2,SP_PTREGS(%r15) # load pt_regs | 361 | la %r2,SP_PTREGS(%r15) # load pt_regs |
362 | jg sys_clone # branch to sys_clone | 362 | jg sys_clone # branch to sys_clone |
363 | 363 | ||
364 | #ifdef CONFIG_S390_SUPPORT | 364 | #ifdef CONFIG_COMPAT |
365 | sys32_clone_glue: | 365 | sys32_clone_glue: |
366 | la %r2,SP_PTREGS(%r15) # load pt_regs | 366 | la %r2,SP_PTREGS(%r15) # load pt_regs |
367 | jg sys32_clone # branch to sys32_clone | 367 | jg sys32_clone # branch to sys32_clone |
@@ -383,7 +383,7 @@ sys_execve_glue: | |||
383 | bnz 0(%r12) # it did fail -> store result in gpr2 | 383 | bnz 0(%r12) # it did fail -> store result in gpr2 |
384 | b 6(%r12) # SKIP STG 2,SP_R2(15) in | 384 | b 6(%r12) # SKIP STG 2,SP_R2(15) in |
385 | # system_call/sysc_tracesys | 385 | # system_call/sysc_tracesys |
386 | #ifdef CONFIG_S390_SUPPORT | 386 | #ifdef CONFIG_COMPAT |
387 | sys32_execve_glue: | 387 | sys32_execve_glue: |
388 | la %r2,SP_PTREGS(%r15) # load pt_regs | 388 | la %r2,SP_PTREGS(%r15) # load pt_regs |
389 | lgr %r12,%r14 # save return address | 389 | lgr %r12,%r14 # save return address |
@@ -398,7 +398,7 @@ sys_sigreturn_glue: | |||
398 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter | 398 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter |
399 | jg sys_sigreturn # branch to sys_sigreturn | 399 | jg sys_sigreturn # branch to sys_sigreturn |
400 | 400 | ||
401 | #ifdef CONFIG_S390_SUPPORT | 401 | #ifdef CONFIG_COMPAT |
402 | sys32_sigreturn_glue: | 402 | sys32_sigreturn_glue: |
403 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter | 403 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter |
404 | jg sys32_sigreturn # branch to sys32_sigreturn | 404 | jg sys32_sigreturn # branch to sys32_sigreturn |
@@ -408,7 +408,7 @@ sys_rt_sigreturn_glue: | |||
408 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter | 408 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter |
409 | jg sys_rt_sigreturn # branch to sys_sigreturn | 409 | jg sys_rt_sigreturn # branch to sys_sigreturn |
410 | 410 | ||
411 | #ifdef CONFIG_S390_SUPPORT | 411 | #ifdef CONFIG_COMPAT |
412 | sys32_rt_sigreturn_glue: | 412 | sys32_rt_sigreturn_glue: |
413 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter | 413 | la %r2,SP_PTREGS(%r15) # load pt_regs as parameter |
414 | jg sys32_rt_sigreturn # branch to sys32_sigreturn | 414 | jg sys32_rt_sigreturn # branch to sys32_sigreturn |
@@ -429,7 +429,7 @@ sys_sigsuspend_glue: | |||
429 | la %r14,6(%r14) # skip store of return value | 429 | la %r14,6(%r14) # skip store of return value |
430 | jg sys_sigsuspend # branch to sys_sigsuspend | 430 | jg sys_sigsuspend # branch to sys_sigsuspend |
431 | 431 | ||
432 | #ifdef CONFIG_S390_SUPPORT | 432 | #ifdef CONFIG_COMPAT |
433 | sys32_sigsuspend_glue: | 433 | sys32_sigsuspend_glue: |
434 | llgfr %r4,%r4 # unsigned long | 434 | llgfr %r4,%r4 # unsigned long |
435 | lgr %r5,%r4 # move mask back | 435 | lgr %r5,%r4 # move mask back |
@@ -449,7 +449,7 @@ sys_rt_sigsuspend_glue: | |||
449 | la %r14,6(%r14) # skip store of return value | 449 | la %r14,6(%r14) # skip store of return value |
450 | jg sys_rt_sigsuspend # branch to sys_rt_sigsuspend | 450 | jg sys_rt_sigsuspend # branch to sys_rt_sigsuspend |
451 | 451 | ||
452 | #ifdef CONFIG_S390_SUPPORT | 452 | #ifdef CONFIG_COMPAT |
453 | sys32_rt_sigsuspend_glue: | 453 | sys32_rt_sigsuspend_glue: |
454 | llgfr %r3,%r3 # size_t | 454 | llgfr %r3,%r3 # size_t |
455 | lgr %r4,%r3 # move sigsetsize parameter | 455 | lgr %r4,%r3 # move sigsetsize parameter |
@@ -464,7 +464,7 @@ sys_sigaltstack_glue: | |||
464 | la %r4,SP_PTREGS(%r15) # load pt_regs as parameter | 464 | la %r4,SP_PTREGS(%r15) # load pt_regs as parameter |
465 | jg sys_sigaltstack # branch to sys_sigreturn | 465 | jg sys_sigaltstack # branch to sys_sigreturn |
466 | 466 | ||
467 | #ifdef CONFIG_S390_SUPPORT | 467 | #ifdef CONFIG_COMPAT |
468 | sys32_sigaltstack_glue: | 468 | sys32_sigaltstack_glue: |
469 | la %r4,SP_PTREGS(%r15) # load pt_regs as parameter | 469 | la %r4,SP_PTREGS(%r15) # load pt_regs as parameter |
470 | jg sys32_sigaltstack_wrapper # branch to sys_sigreturn | 470 | jg sys32_sigaltstack_wrapper # branch to sys_sigreturn |
@@ -1009,7 +1009,7 @@ sys_call_table: | |||
1009 | #include "syscalls.S" | 1009 | #include "syscalls.S" |
1010 | #undef SYSCALL | 1010 | #undef SYSCALL |
1011 | 1011 | ||
1012 | #ifdef CONFIG_S390_SUPPORT | 1012 | #ifdef CONFIG_COMPAT |
1013 | 1013 | ||
1014 | #define SYSCALL(esa,esame,emu) .long emu | 1014 | #define SYSCALL(esa,esame,emu) .long emu |
1015 | .globl sys_call_table_emu | 1015 | .globl sys_call_table_emu |
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index d31a97c89f68..ea88d066bf04 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <asm/thread_info.h> | 30 | #include <asm/thread_info.h> |
31 | #include <asm/page.h> | 31 | #include <asm/page.h> |
32 | 32 | ||
33 | #ifdef CONFIG_ARCH_S390X | 33 | #ifdef CONFIG_64BIT |
34 | #define ARCH_OFFSET 4 | 34 | #define ARCH_OFFSET 4 |
35 | #else | 35 | #else |
36 | #define ARCH_OFFSET 0 | 36 | #define ARCH_OFFSET 0 |
@@ -539,7 +539,7 @@ ipl_devno: | |||
539 | .word 0 | 539 | .word 0 |
540 | .endm | 540 | .endm |
541 | 541 | ||
542 | #ifdef CONFIG_ARCH_S390X | 542 | #ifdef CONFIG_64BIT |
543 | #include "head64.S" | 543 | #include "head64.S" |
544 | #else | 544 | #else |
545 | #include "head31.S" | 545 | #include "head31.S" |
diff --git a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c index 5aa71b05b8ae..f0ed5c642c74 100644 --- a/arch/s390/kernel/machine_kexec.c +++ b/arch/s390/kernel/machine_kexec.c | |||
@@ -85,7 +85,7 @@ kexec_halt_all_cpus(void *kernel_image) | |||
85 | pfault_fini(); | 85 | pfault_fini(); |
86 | #endif | 86 | #endif |
87 | 87 | ||
88 | if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid)) | 88 | if (atomic_cmpxchg(&cpuid, -1, smp_processor_id()) != -1) |
89 | signal_processor(smp_processor_id(), sigp_stop); | 89 | signal_processor(smp_processor_id(), sigp_stop); |
90 | 90 | ||
91 | /* Wait for all other cpus to enter stopped state */ | 91 | /* Wait for all other cpus to enter stopped state */ |
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c index 607d506689c8..c271cdab58e2 100644 --- a/arch/s390/kernel/module.c +++ b/arch/s390/kernel/module.c | |||
@@ -37,11 +37,11 @@ | |||
37 | #define DEBUGP(fmt , ...) | 37 | #define DEBUGP(fmt , ...) |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | #ifndef CONFIG_ARCH_S390X | 40 | #ifndef CONFIG_64BIT |
41 | #define PLT_ENTRY_SIZE 12 | 41 | #define PLT_ENTRY_SIZE 12 |
42 | #else /* CONFIG_ARCH_S390X */ | 42 | #else /* CONFIG_64BIT */ |
43 | #define PLT_ENTRY_SIZE 20 | 43 | #define PLT_ENTRY_SIZE 20 |
44 | #endif /* CONFIG_ARCH_S390X */ | 44 | #endif /* CONFIG_64BIT */ |
45 | 45 | ||
46 | void *module_alloc(unsigned long size) | 46 | void *module_alloc(unsigned long size) |
47 | { | 47 | { |
@@ -294,17 +294,17 @@ apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab, | |||
294 | unsigned int *ip; | 294 | unsigned int *ip; |
295 | ip = me->module_core + me->arch.plt_offset + | 295 | ip = me->module_core + me->arch.plt_offset + |
296 | info->plt_offset; | 296 | info->plt_offset; |
297 | #ifndef CONFIG_ARCH_S390X | 297 | #ifndef CONFIG_64BIT |
298 | ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */ | 298 | ip[0] = 0x0d105810; /* basr 1,0; l 1,6(1); br 1 */ |
299 | ip[1] = 0x100607f1; | 299 | ip[1] = 0x100607f1; |
300 | ip[2] = val; | 300 | ip[2] = val; |
301 | #else /* CONFIG_ARCH_S390X */ | 301 | #else /* CONFIG_64BIT */ |
302 | ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */ | 302 | ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */ |
303 | ip[1] = 0x100a0004; | 303 | ip[1] = 0x100a0004; |
304 | ip[2] = 0x07f10000; | 304 | ip[2] = 0x07f10000; |
305 | ip[3] = (unsigned int) (val >> 32); | 305 | ip[3] = (unsigned int) (val >> 32); |
306 | ip[4] = (unsigned int) val; | 306 | ip[4] = (unsigned int) val; |
307 | #endif /* CONFIG_ARCH_S390X */ | 307 | #endif /* CONFIG_64BIT */ |
308 | info->plt_initialized = 1; | 308 | info->plt_initialized = 1; |
309 | } | 309 | } |
310 | if (r_type == R_390_PLTOFF16 || | 310 | if (r_type == R_390_PLTOFF16 || |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 78b64fe5e7c2..a942bf2d58e9 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -235,7 +235,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp, | |||
235 | /* Save access registers to new thread structure. */ | 235 | /* Save access registers to new thread structure. */ |
236 | save_access_regs(&p->thread.acrs[0]); | 236 | save_access_regs(&p->thread.acrs[0]); |
237 | 237 | ||
238 | #ifndef CONFIG_ARCH_S390X | 238 | #ifndef CONFIG_64BIT |
239 | /* | 239 | /* |
240 | * save fprs to current->thread.fp_regs to merge them with | 240 | * save fprs to current->thread.fp_regs to merge them with |
241 | * the emulated registers and then copy the result to the child. | 241 | * the emulated registers and then copy the result to the child. |
@@ -247,7 +247,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp, | |||
247 | /* Set a new TLS ? */ | 247 | /* Set a new TLS ? */ |
248 | if (clone_flags & CLONE_SETTLS) | 248 | if (clone_flags & CLONE_SETTLS) |
249 | p->thread.acrs[0] = regs->gprs[6]; | 249 | p->thread.acrs[0] = regs->gprs[6]; |
250 | #else /* CONFIG_ARCH_S390X */ | 250 | #else /* CONFIG_64BIT */ |
251 | /* Save the fpu registers to new thread structure. */ | 251 | /* Save the fpu registers to new thread structure. */ |
252 | save_fp_regs(&p->thread.fp_regs); | 252 | save_fp_regs(&p->thread.fp_regs); |
253 | p->thread.user_seg = __pa((unsigned long) p->mm->pgd) | _REGION_TABLE; | 253 | p->thread.user_seg = __pa((unsigned long) p->mm->pgd) | _REGION_TABLE; |
@@ -260,7 +260,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp, | |||
260 | p->thread.acrs[1] = (unsigned int) regs->gprs[6]; | 260 | p->thread.acrs[1] = (unsigned int) regs->gprs[6]; |
261 | } | 261 | } |
262 | } | 262 | } |
263 | #endif /* CONFIG_ARCH_S390X */ | 263 | #endif /* CONFIG_64BIT */ |
264 | /* start new process with ar4 pointing to the correct address space */ | 264 | /* start new process with ar4 pointing to the correct address space */ |
265 | p->thread.mm_segment = get_fs(); | 265 | p->thread.mm_segment = get_fs(); |
266 | /* Don't copy debug registers */ | 266 | /* Don't copy debug registers */ |
@@ -339,16 +339,16 @@ out: | |||
339 | */ | 339 | */ |
340 | int dump_fpu (struct pt_regs * regs, s390_fp_regs *fpregs) | 340 | int dump_fpu (struct pt_regs * regs, s390_fp_regs *fpregs) |
341 | { | 341 | { |
342 | #ifndef CONFIG_ARCH_S390X | 342 | #ifndef CONFIG_64BIT |
343 | /* | 343 | /* |
344 | * save fprs to current->thread.fp_regs to merge them with | 344 | * save fprs to current->thread.fp_regs to merge them with |
345 | * the emulated registers and then copy the result to the dump. | 345 | * the emulated registers and then copy the result to the dump. |
346 | */ | 346 | */ |
347 | save_fp_regs(¤t->thread.fp_regs); | 347 | save_fp_regs(¤t->thread.fp_regs); |
348 | memcpy(fpregs, ¤t->thread.fp_regs, sizeof(s390_fp_regs)); | 348 | memcpy(fpregs, ¤t->thread.fp_regs, sizeof(s390_fp_regs)); |
349 | #else /* CONFIG_ARCH_S390X */ | 349 | #else /* CONFIG_64BIT */ |
350 | save_fp_regs(fpregs); | 350 | save_fp_regs(fpregs); |
351 | #endif /* CONFIG_ARCH_S390X */ | 351 | #endif /* CONFIG_64BIT */ |
352 | return 1; | 352 | return 1; |
353 | } | 353 | } |
354 | 354 | ||
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 06afa3103ace..8ecda6d66de4 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -42,7 +42,7 @@ | |||
42 | #include <asm/uaccess.h> | 42 | #include <asm/uaccess.h> |
43 | #include <asm/unistd.h> | 43 | #include <asm/unistd.h> |
44 | 44 | ||
45 | #ifdef CONFIG_S390_SUPPORT | 45 | #ifdef CONFIG_COMPAT |
46 | #include "compat_ptrace.h" | 46 | #include "compat_ptrace.h" |
47 | #endif | 47 | #endif |
48 | 48 | ||
@@ -59,7 +59,7 @@ FixPerRegisters(struct task_struct *task) | |||
59 | 59 | ||
60 | if (per_info->single_step) { | 60 | if (per_info->single_step) { |
61 | per_info->control_regs.bits.starting_addr = 0; | 61 | per_info->control_regs.bits.starting_addr = 0; |
62 | #ifdef CONFIG_S390_SUPPORT | 62 | #ifdef CONFIG_COMPAT |
63 | if (test_thread_flag(TIF_31BIT)) | 63 | if (test_thread_flag(TIF_31BIT)) |
64 | per_info->control_regs.bits.ending_addr = 0x7fffffffUL; | 64 | per_info->control_regs.bits.ending_addr = 0x7fffffffUL; |
65 | else | 65 | else |
@@ -112,7 +112,7 @@ ptrace_disable(struct task_struct *child) | |||
112 | clear_single_step(child); | 112 | clear_single_step(child); |
113 | } | 113 | } |
114 | 114 | ||
115 | #ifndef CONFIG_ARCH_S390X | 115 | #ifndef CONFIG_64BIT |
116 | # define __ADDR_MASK 3 | 116 | # define __ADDR_MASK 3 |
117 | #else | 117 | #else |
118 | # define __ADDR_MASK 7 | 118 | # define __ADDR_MASK 7 |
@@ -138,7 +138,7 @@ peek_user(struct task_struct *child, addr_t addr, addr_t data) | |||
138 | * an alignment of 4. Programmers from hell... | 138 | * an alignment of 4. Programmers from hell... |
139 | */ | 139 | */ |
140 | mask = __ADDR_MASK; | 140 | mask = __ADDR_MASK; |
141 | #ifdef CONFIG_ARCH_S390X | 141 | #ifdef CONFIG_64BIT |
142 | if (addr >= (addr_t) &dummy->regs.acrs && | 142 | if (addr >= (addr_t) &dummy->regs.acrs && |
143 | addr < (addr_t) &dummy->regs.orig_gpr2) | 143 | addr < (addr_t) &dummy->regs.orig_gpr2) |
144 | mask = 3; | 144 | mask = 3; |
@@ -160,7 +160,7 @@ peek_user(struct task_struct *child, addr_t addr, addr_t data) | |||
160 | * access registers are stored in the thread structure | 160 | * access registers are stored in the thread structure |
161 | */ | 161 | */ |
162 | offset = addr - (addr_t) &dummy->regs.acrs; | 162 | offset = addr - (addr_t) &dummy->regs.acrs; |
163 | #ifdef CONFIG_ARCH_S390X | 163 | #ifdef CONFIG_64BIT |
164 | /* | 164 | /* |
165 | * Very special case: old & broken 64 bit gdb reading | 165 | * Very special case: old & broken 64 bit gdb reading |
166 | * from acrs[15]. Result is a 64 bit value. Read the | 166 | * from acrs[15]. Result is a 64 bit value. Read the |
@@ -218,7 +218,7 @@ poke_user(struct task_struct *child, addr_t addr, addr_t data) | |||
218 | * an alignment of 4. Programmers from hell indeed... | 218 | * an alignment of 4. Programmers from hell indeed... |
219 | */ | 219 | */ |
220 | mask = __ADDR_MASK; | 220 | mask = __ADDR_MASK; |
221 | #ifdef CONFIG_ARCH_S390X | 221 | #ifdef CONFIG_64BIT |
222 | if (addr >= (addr_t) &dummy->regs.acrs && | 222 | if (addr >= (addr_t) &dummy->regs.acrs && |
223 | addr < (addr_t) &dummy->regs.orig_gpr2) | 223 | addr < (addr_t) &dummy->regs.orig_gpr2) |
224 | mask = 3; | 224 | mask = 3; |
@@ -231,13 +231,13 @@ poke_user(struct task_struct *child, addr_t addr, addr_t data) | |||
231 | * psw and gprs are stored on the stack | 231 | * psw and gprs are stored on the stack |
232 | */ | 232 | */ |
233 | if (addr == (addr_t) &dummy->regs.psw.mask && | 233 | if (addr == (addr_t) &dummy->regs.psw.mask && |
234 | #ifdef CONFIG_S390_SUPPORT | 234 | #ifdef CONFIG_COMPAT |
235 | data != PSW_MASK_MERGE(PSW_USER32_BITS, data) && | 235 | data != PSW_MASK_MERGE(PSW_USER32_BITS, data) && |
236 | #endif | 236 | #endif |
237 | data != PSW_MASK_MERGE(PSW_USER_BITS, data)) | 237 | data != PSW_MASK_MERGE(PSW_USER_BITS, data)) |
238 | /* Invalid psw mask. */ | 238 | /* Invalid psw mask. */ |
239 | return -EINVAL; | 239 | return -EINVAL; |
240 | #ifndef CONFIG_ARCH_S390X | 240 | #ifndef CONFIG_64BIT |
241 | if (addr == (addr_t) &dummy->regs.psw.addr) | 241 | if (addr == (addr_t) &dummy->regs.psw.addr) |
242 | /* I'd like to reject addresses without the | 242 | /* I'd like to reject addresses without the |
243 | high order bit but older gdb's rely on it */ | 243 | high order bit but older gdb's rely on it */ |
@@ -250,7 +250,7 @@ poke_user(struct task_struct *child, addr_t addr, addr_t data) | |||
250 | * access registers are stored in the thread structure | 250 | * access registers are stored in the thread structure |
251 | */ | 251 | */ |
252 | offset = addr - (addr_t) &dummy->regs.acrs; | 252 | offset = addr - (addr_t) &dummy->regs.acrs; |
253 | #ifdef CONFIG_ARCH_S390X | 253 | #ifdef CONFIG_64BIT |
254 | /* | 254 | /* |
255 | * Very special case: old & broken 64 bit gdb writing | 255 | * Very special case: old & broken 64 bit gdb writing |
256 | * to acrs[15] with a 64 bit value. Ignore the lower | 256 | * to acrs[15] with a 64 bit value. Ignore the lower |
@@ -357,7 +357,7 @@ do_ptrace_normal(struct task_struct *child, long request, long addr, long data) | |||
357 | return ptrace_request(child, request, addr, data); | 357 | return ptrace_request(child, request, addr, data); |
358 | } | 358 | } |
359 | 359 | ||
360 | #ifdef CONFIG_S390_SUPPORT | 360 | #ifdef CONFIG_COMPAT |
361 | /* | 361 | /* |
362 | * Now the fun part starts... a 31 bit program running in the | 362 | * Now the fun part starts... a 31 bit program running in the |
363 | * 31 bit emulation tracing another program. PTRACE_PEEKTEXT, | 363 | * 31 bit emulation tracing another program. PTRACE_PEEKTEXT, |
@@ -629,7 +629,7 @@ do_ptrace(struct task_struct *child, long request, long addr, long data) | |||
629 | return peek_user(child, addr, data); | 629 | return peek_user(child, addr, data); |
630 | if (request == PTRACE_POKEUSR && addr == PT_IEEE_IP) | 630 | if (request == PTRACE_POKEUSR && addr == PT_IEEE_IP) |
631 | return poke_user(child, addr, data); | 631 | return poke_user(child, addr, data); |
632 | #ifdef CONFIG_S390_SUPPORT | 632 | #ifdef CONFIG_COMPAT |
633 | if (request == PTRACE_PEEKUSR && | 633 | if (request == PTRACE_PEEKUSR && |
634 | addr == PT32_IEEE_IP && test_thread_flag(TIF_31BIT)) | 634 | addr == PT32_IEEE_IP && test_thread_flag(TIF_31BIT)) |
635 | return peek_user_emu31(child, addr, data); | 635 | return peek_user_emu31(child, addr, data); |
@@ -695,7 +695,7 @@ do_ptrace(struct task_struct *child, long request, long addr, long data) | |||
695 | 695 | ||
696 | /* Do requests that differ for 31/64 bit */ | 696 | /* Do requests that differ for 31/64 bit */ |
697 | default: | 697 | default: |
698 | #ifdef CONFIG_S390_SUPPORT | 698 | #ifdef CONFIG_COMPAT |
699 | if (test_thread_flag(TIF_31BIT)) | 699 | if (test_thread_flag(TIF_31BIT)) |
700 | return do_ptrace_emu31(child, request, addr, data); | 700 | return do_ptrace_emu31(child, request, addr, data); |
701 | #endif | 701 | #endif |
diff --git a/arch/s390/kernel/reipl_diag.c b/arch/s390/kernel/reipl_diag.c index 83cb42bc0b76..1f33951ba439 100644 --- a/arch/s390/kernel/reipl_diag.c +++ b/arch/s390/kernel/reipl_diag.c | |||
@@ -26,7 +26,7 @@ void reipl_diag(void) | |||
26 | " st %%r4,%0\n" | 26 | " st %%r4,%0\n" |
27 | " st %%r5,%1\n" | 27 | " st %%r5,%1\n" |
28 | ".section __ex_table,\"a\"\n" | 28 | ".section __ex_table,\"a\"\n" |
29 | #ifdef __s390x__ | 29 | #ifdef CONFIG_64BIT |
30 | " .align 8\n" | 30 | " .align 8\n" |
31 | " .quad 0b, 0b\n" | 31 | " .quad 0b, 0b\n" |
32 | #else | 32 | #else |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 31e7b19348b7..b03847d100d9 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -427,7 +427,7 @@ setup_lowcore(void) | |||
427 | __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, 0) + PAGE_SIZE; | 427 | __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, 0) + PAGE_SIZE; |
428 | lc->current_task = (unsigned long) init_thread_union.thread_info.task; | 428 | lc->current_task = (unsigned long) init_thread_union.thread_info.task; |
429 | lc->thread_info = (unsigned long) &init_thread_union; | 429 | lc->thread_info = (unsigned long) &init_thread_union; |
430 | #ifndef CONFIG_ARCH_S390X | 430 | #ifndef CONFIG_64BIT |
431 | if (MACHINE_HAS_IEEE) { | 431 | if (MACHINE_HAS_IEEE) { |
432 | lc->extended_save_area_addr = (__u32) | 432 | lc->extended_save_area_addr = (__u32) |
433 | __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, 0); | 433 | __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, 0); |
@@ -562,21 +562,21 @@ setup_arch(char **cmdline_p) | |||
562 | /* | 562 | /* |
563 | * print what head.S has found out about the machine | 563 | * print what head.S has found out about the machine |
564 | */ | 564 | */ |
565 | #ifndef CONFIG_ARCH_S390X | 565 | #ifndef CONFIG_64BIT |
566 | printk((MACHINE_IS_VM) ? | 566 | printk((MACHINE_IS_VM) ? |
567 | "We are running under VM (31 bit mode)\n" : | 567 | "We are running under VM (31 bit mode)\n" : |
568 | "We are running native (31 bit mode)\n"); | 568 | "We are running native (31 bit mode)\n"); |
569 | printk((MACHINE_HAS_IEEE) ? | 569 | printk((MACHINE_HAS_IEEE) ? |
570 | "This machine has an IEEE fpu\n" : | 570 | "This machine has an IEEE fpu\n" : |
571 | "This machine has no IEEE fpu\n"); | 571 | "This machine has no IEEE fpu\n"); |
572 | #else /* CONFIG_ARCH_S390X */ | 572 | #else /* CONFIG_64BIT */ |
573 | printk((MACHINE_IS_VM) ? | 573 | printk((MACHINE_IS_VM) ? |
574 | "We are running under VM (64 bit mode)\n" : | 574 | "We are running under VM (64 bit mode)\n" : |
575 | "We are running native (64 bit mode)\n"); | 575 | "We are running native (64 bit mode)\n"); |
576 | #endif /* CONFIG_ARCH_S390X */ | 576 | #endif /* CONFIG_64BIT */ |
577 | 577 | ||
578 | ROOT_DEV = Root_RAM0; | 578 | ROOT_DEV = Root_RAM0; |
579 | #ifndef CONFIG_ARCH_S390X | 579 | #ifndef CONFIG_64BIT |
580 | memory_end = memory_size & ~0x400000UL; /* align memory end to 4MB */ | 580 | memory_end = memory_size & ~0x400000UL; /* align memory end to 4MB */ |
581 | /* | 581 | /* |
582 | * We need some free virtual space to be able to do vmalloc. | 582 | * We need some free virtual space to be able to do vmalloc. |
@@ -585,9 +585,9 @@ setup_arch(char **cmdline_p) | |||
585 | */ | 585 | */ |
586 | if (memory_end > 1920*1024*1024) | 586 | if (memory_end > 1920*1024*1024) |
587 | memory_end = 1920*1024*1024; | 587 | memory_end = 1920*1024*1024; |
588 | #else /* CONFIG_ARCH_S390X */ | 588 | #else /* CONFIG_64BIT */ |
589 | memory_end = memory_size & ~0x200000UL; /* detected in head.s */ | 589 | memory_end = memory_size & ~0x200000UL; /* detected in head.s */ |
590 | #endif /* CONFIG_ARCH_S390X */ | 590 | #endif /* CONFIG_64BIT */ |
591 | 591 | ||
592 | init_mm.start_code = PAGE_OFFSET; | 592 | init_mm.start_code = PAGE_OFFSET; |
593 | init_mm.end_code = (unsigned long) &_etext; | 593 | init_mm.end_code = (unsigned long) &_etext; |
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 6e0110d71191..6ae4a77270b5 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -254,9 +254,9 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs) | |||
254 | if (restore_sigregs(regs, &frame->uc.uc_mcontext)) | 254 | if (restore_sigregs(regs, &frame->uc.uc_mcontext)) |
255 | goto badframe; | 255 | goto badframe; |
256 | 256 | ||
257 | /* It is more difficult to avoid calling this function than to | 257 | if (do_sigaltstack(&frame->uc.uc_stack, NULL, |
258 | call it and ignore errors. */ | 258 | regs->gprs[15]) == -EFAULT) |
259 | do_sigaltstack(&frame->uc.uc_stack, NULL, regs->gprs[15]); | 259 | goto badframe; |
260 | return regs->gprs[2]; | 260 | return regs->gprs[2]; |
261 | 261 | ||
262 | badframe: | 262 | badframe: |
@@ -501,7 +501,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset) | |||
501 | 501 | ||
502 | if (signr > 0) { | 502 | if (signr > 0) { |
503 | /* Whee! Actually deliver the signal. */ | 503 | /* Whee! Actually deliver the signal. */ |
504 | #ifdef CONFIG_S390_SUPPORT | 504 | #ifdef CONFIG_COMPAT |
505 | if (test_thread_flag(TIF_31BIT)) { | 505 | if (test_thread_flag(TIF_31BIT)) { |
506 | extern void handle_signal32(unsigned long sig, | 506 | extern void handle_signal32(unsigned long sig, |
507 | struct k_sigaction *ka, | 507 | struct k_sigaction *ka, |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 5856b3fda6bf..e10f4ca00499 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -263,7 +263,7 @@ static void do_machine_restart(void * __unused) | |||
263 | int cpu; | 263 | int cpu; |
264 | static atomic_t cpuid = ATOMIC_INIT(-1); | 264 | static atomic_t cpuid = ATOMIC_INIT(-1); |
265 | 265 | ||
266 | if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid)) | 266 | if (atomic_cmpxchg(&cpuid, -1, smp_processor_id()) != -1) |
267 | signal_processor(smp_processor_id(), sigp_stop); | 267 | signal_processor(smp_processor_id(), sigp_stop); |
268 | 268 | ||
269 | /* Wait for all other cpus to enter stopped state */ | 269 | /* Wait for all other cpus to enter stopped state */ |
@@ -313,7 +313,7 @@ static void do_machine_halt(void * __unused) | |||
313 | { | 313 | { |
314 | static atomic_t cpuid = ATOMIC_INIT(-1); | 314 | static atomic_t cpuid = ATOMIC_INIT(-1); |
315 | 315 | ||
316 | if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid) == 0) { | 316 | if (atomic_cmpxchg(&cpuid, -1, smp_processor_id()) == -1) { |
317 | smp_send_stop(); | 317 | smp_send_stop(); |
318 | if (MACHINE_IS_VM && strlen(vmhalt_cmd) > 0) | 318 | if (MACHINE_IS_VM && strlen(vmhalt_cmd) > 0) |
319 | cpcmd(vmhalt_cmd, NULL, 0, NULL); | 319 | cpcmd(vmhalt_cmd, NULL, 0, NULL); |
@@ -332,7 +332,7 @@ static void do_machine_power_off(void * __unused) | |||
332 | { | 332 | { |
333 | static atomic_t cpuid = ATOMIC_INIT(-1); | 333 | static atomic_t cpuid = ATOMIC_INIT(-1); |
334 | 334 | ||
335 | if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid) == 0) { | 335 | if (atomic_cmpxchg(&cpuid, -1, smp_processor_id()) == -1) { |
336 | smp_send_stop(); | 336 | smp_send_stop(); |
337 | if (MACHINE_IS_VM && strlen(vmpoff_cmd) > 0) | 337 | if (MACHINE_IS_VM && strlen(vmpoff_cmd) > 0) |
338 | cpcmd(vmpoff_cmd, NULL, 0, NULL); | 338 | cpcmd(vmpoff_cmd, NULL, 0, NULL); |
@@ -402,7 +402,7 @@ static void smp_ext_bitcall_others(ec_bit_sig sig) | |||
402 | } | 402 | } |
403 | } | 403 | } |
404 | 404 | ||
405 | #ifndef CONFIG_ARCH_S390X | 405 | #ifndef CONFIG_64BIT |
406 | /* | 406 | /* |
407 | * this function sends a 'purge tlb' signal to another CPU. | 407 | * this function sends a 'purge tlb' signal to another CPU. |
408 | */ | 408 | */ |
@@ -416,7 +416,7 @@ void smp_ptlb_all(void) | |||
416 | on_each_cpu(smp_ptlb_callback, NULL, 0, 1); | 416 | on_each_cpu(smp_ptlb_callback, NULL, 0, 1); |
417 | } | 417 | } |
418 | EXPORT_SYMBOL(smp_ptlb_all); | 418 | EXPORT_SYMBOL(smp_ptlb_all); |
419 | #endif /* ! CONFIG_ARCH_S390X */ | 419 | #endif /* ! CONFIG_64BIT */ |
420 | 420 | ||
421 | /* | 421 | /* |
422 | * this function sends a 'reschedule' IPI to another CPU. | 422 | * this function sends a 'reschedule' IPI to another CPU. |
@@ -783,7 +783,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
783 | if (stack == 0ULL) | 783 | if (stack == 0ULL) |
784 | panic("smp_boot_cpus failed to allocate memory\n"); | 784 | panic("smp_boot_cpus failed to allocate memory\n"); |
785 | lowcore_ptr[i]->panic_stack = stack + (PAGE_SIZE); | 785 | lowcore_ptr[i]->panic_stack = stack + (PAGE_SIZE); |
786 | #ifndef __s390x__ | 786 | #ifndef CONFIG_64BIT |
787 | if (MACHINE_HAS_IEEE) { | 787 | if (MACHINE_HAS_IEEE) { |
788 | lowcore_ptr[i]->extended_save_area_addr = | 788 | lowcore_ptr[i]->extended_save_area_addr = |
789 | (__u32) __get_free_pages(GFP_KERNEL,0); | 789 | (__u32) __get_free_pages(GFP_KERNEL,0); |
@@ -793,7 +793,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
793 | } | 793 | } |
794 | #endif | 794 | #endif |
795 | } | 795 | } |
796 | #ifndef __s390x__ | 796 | #ifndef CONFIG_64BIT |
797 | if (MACHINE_HAS_IEEE) | 797 | if (MACHINE_HAS_IEEE) |
798 | ctl_set_bit(14, 29); /* enable extended save area */ | 798 | ctl_set_bit(14, 29); /* enable extended save area */ |
799 | #endif | 799 | #endif |
diff --git a/arch/s390/kernel/sys_s390.c b/arch/s390/kernel/sys_s390.c index efe6b83b53f7..6a63553493c5 100644 --- a/arch/s390/kernel/sys_s390.c +++ b/arch/s390/kernel/sys_s390.c | |||
@@ -26,9 +26,7 @@ | |||
26 | #include <linux/mman.h> | 26 | #include <linux/mman.h> |
27 | #include <linux/file.h> | 27 | #include <linux/file.h> |
28 | #include <linux/utsname.h> | 28 | #include <linux/utsname.h> |
29 | #ifdef CONFIG_ARCH_S390X | ||
30 | #include <linux/personality.h> | 29 | #include <linux/personality.h> |
31 | #endif /* CONFIG_ARCH_S390X */ | ||
32 | 30 | ||
33 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
34 | #include <asm/ipc.h> | 32 | #include <asm/ipc.h> |
@@ -121,7 +119,7 @@ out: | |||
121 | return error; | 119 | return error; |
122 | } | 120 | } |
123 | 121 | ||
124 | #ifndef CONFIG_ARCH_S390X | 122 | #ifndef CONFIG_64BIT |
125 | struct sel_arg_struct { | 123 | struct sel_arg_struct { |
126 | unsigned long n; | 124 | unsigned long n; |
127 | fd_set *inp, *outp, *exp; | 125 | fd_set *inp, *outp, *exp; |
@@ -138,7 +136,7 @@ asmlinkage long old_select(struct sel_arg_struct __user *arg) | |||
138 | return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp); | 136 | return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp); |
139 | 137 | ||
140 | } | 138 | } |
141 | #endif /* CONFIG_ARCH_S390X */ | 139 | #endif /* CONFIG_64BIT */ |
142 | 140 | ||
143 | /* | 141 | /* |
144 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. | 142 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. |
@@ -211,7 +209,7 @@ asmlinkage long sys_ipc(uint call, int first, unsigned long second, | |||
211 | return -EINVAL; | 209 | return -EINVAL; |
212 | } | 210 | } |
213 | 211 | ||
214 | #ifdef CONFIG_ARCH_S390X | 212 | #ifdef CONFIG_64BIT |
215 | asmlinkage long s390x_newuname(struct new_utsname __user *name) | 213 | asmlinkage long s390x_newuname(struct new_utsname __user *name) |
216 | { | 214 | { |
217 | int ret = sys_newuname(name); | 215 | int ret = sys_newuname(name); |
@@ -235,12 +233,12 @@ asmlinkage long s390x_personality(unsigned long personality) | |||
235 | 233 | ||
236 | return ret; | 234 | return ret; |
237 | } | 235 | } |
238 | #endif /* CONFIG_ARCH_S390X */ | 236 | #endif /* CONFIG_64BIT */ |
239 | 237 | ||
240 | /* | 238 | /* |
241 | * Wrapper function for sys_fadvise64/fadvise64_64 | 239 | * Wrapper function for sys_fadvise64/fadvise64_64 |
242 | */ | 240 | */ |
243 | #ifndef CONFIG_ARCH_S390X | 241 | #ifndef CONFIG_64BIT |
244 | 242 | ||
245 | asmlinkage long | 243 | asmlinkage long |
246 | s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice) | 244 | s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice) |
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index c5bd36fae56b..95d109968619 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -67,13 +67,13 @@ extern pgm_check_handler_t do_monitor_call; | |||
67 | 67 | ||
68 | #define stack_pointer ({ void **sp; asm("la %0,0(15)" : "=&d" (sp)); sp; }) | 68 | #define stack_pointer ({ void **sp; asm("la %0,0(15)" : "=&d" (sp)); sp; }) |
69 | 69 | ||
70 | #ifndef CONFIG_ARCH_S390X | 70 | #ifndef CONFIG_64BIT |
71 | #define FOURLONG "%08lx %08lx %08lx %08lx\n" | 71 | #define FOURLONG "%08lx %08lx %08lx %08lx\n" |
72 | static int kstack_depth_to_print = 12; | 72 | static int kstack_depth_to_print = 12; |
73 | #else /* CONFIG_ARCH_S390X */ | 73 | #else /* CONFIG_64BIT */ |
74 | #define FOURLONG "%016lx %016lx %016lx %016lx\n" | 74 | #define FOURLONG "%016lx %016lx %016lx %016lx\n" |
75 | static int kstack_depth_to_print = 20; | 75 | static int kstack_depth_to_print = 20; |
76 | #endif /* CONFIG_ARCH_S390X */ | 76 | #endif /* CONFIG_64BIT */ |
77 | 77 | ||
78 | /* | 78 | /* |
79 | * For show_trace we have tree different stack to consider: | 79 | * For show_trace we have tree different stack to consider: |
@@ -702,12 +702,12 @@ void __init trap_init(void) | |||
702 | pgm_check_table[0x11] = &do_dat_exception; | 702 | pgm_check_table[0x11] = &do_dat_exception; |
703 | pgm_check_table[0x12] = &translation_exception; | 703 | pgm_check_table[0x12] = &translation_exception; |
704 | pgm_check_table[0x13] = &special_op_exception; | 704 | pgm_check_table[0x13] = &special_op_exception; |
705 | #ifdef CONFIG_ARCH_S390X | 705 | #ifdef CONFIG_64BIT |
706 | pgm_check_table[0x38] = &do_dat_exception; | 706 | pgm_check_table[0x38] = &do_dat_exception; |
707 | pgm_check_table[0x39] = &do_dat_exception; | 707 | pgm_check_table[0x39] = &do_dat_exception; |
708 | pgm_check_table[0x3A] = &do_dat_exception; | 708 | pgm_check_table[0x3A] = &do_dat_exception; |
709 | pgm_check_table[0x3B] = &do_dat_exception; | 709 | pgm_check_table[0x3B] = &do_dat_exception; |
710 | #endif /* CONFIG_ARCH_S390X */ | 710 | #endif /* CONFIG_64BIT */ |
711 | pgm_check_table[0x15] = &operand_exception; | 711 | pgm_check_table[0x15] = &operand_exception; |
712 | pgm_check_table[0x1C] = &space_switch_exception; | 712 | pgm_check_table[0x1C] = &space_switch_exception; |
713 | pgm_check_table[0x1D] = &hfp_sqrt_exception; | 713 | pgm_check_table[0x1D] = &hfp_sqrt_exception; |
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 89fdb3808bc0..9289face3027 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -5,7 +5,7 @@ | |||
5 | #include <asm-generic/vmlinux.lds.h> | 5 | #include <asm-generic/vmlinux.lds.h> |
6 | #include <linux/config.h> | 6 | #include <linux/config.h> |
7 | 7 | ||
8 | #ifndef CONFIG_ARCH_S390X | 8 | #ifndef CONFIG_64BIT |
9 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") | 9 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") |
10 | OUTPUT_ARCH(s390) | 10 | OUTPUT_ARCH(s390) |
11 | ENTRY(_start) | 11 | ENTRY(_start) |