diff options
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/Kconfig | 7 | ||||
-rw-r--r-- | arch/s390/appldata/appldata_base.c | 10 | ||||
-rw-r--r-- | arch/s390/defconfig | 44 | ||||
-rw-r--r-- | arch/s390/hypfs/hypfs_diag.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/Makefile | 4 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 19 | ||||
-rw-r--r-- | arch/s390/kernel/head31.S | 4 | ||||
-rw-r--r-- | arch/s390/kernel/head64.S | 4 | ||||
-rw-r--r-- | arch/s390/kernel/machine_kexec.c | 1 | ||||
-rw-r--r-- | arch/s390/kernel/module.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/process.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/profile.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/s390_ext.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 46 | ||||
-rw-r--r-- | arch/s390/kernel/time.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/traps.c | 18 | ||||
-rw-r--r-- | arch/s390/lib/string.c | 4 | ||||
-rw-r--r-- | arch/s390/mm/cmm.c | 2 | ||||
-rw-r--r-- | arch/s390/mm/fault.c | 2 |
19 files changed, 114 insertions, 63 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 224fbff79969..ae071a11ce71 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -118,13 +118,6 @@ config SYSVIPC_COMPAT | |||
118 | depends on COMPAT && SYSVIPC | 118 | depends on COMPAT && SYSVIPC |
119 | default y | 119 | default y |
120 | 120 | ||
121 | config BINFMT_ELF32 | ||
122 | tristate "Kernel support for 31 bit ELF binaries" | ||
123 | depends on COMPAT | ||
124 | help | ||
125 | This allows you to run 32-bit Linux/ELF binaries on your zSeries | ||
126 | in 64 bit mode. Everybody wants this; say Y. | ||
127 | |||
128 | comment "Code generation options" | 121 | comment "Code generation options" |
129 | 122 | ||
130 | choice | 123 | choice |
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c index d0f82c995af6..6a4b5f9715c9 100644 --- a/arch/s390/appldata/appldata_base.c +++ b/arch/s390/appldata/appldata_base.c | |||
@@ -617,7 +617,8 @@ appldata_offline_cpu(int cpu) | |||
617 | spin_unlock(&appldata_timer_lock); | 617 | spin_unlock(&appldata_timer_lock); |
618 | } | 618 | } |
619 | 619 | ||
620 | static int __cpuinit | 620 | #ifdef CONFIG_HOTPLUG_CPU |
621 | static int | ||
621 | appldata_cpu_notify(struct notifier_block *self, | 622 | appldata_cpu_notify(struct notifier_block *self, |
622 | unsigned long action, void *hcpu) | 623 | unsigned long action, void *hcpu) |
623 | { | 624 | { |
@@ -625,20 +626,19 @@ appldata_cpu_notify(struct notifier_block *self, | |||
625 | case CPU_ONLINE: | 626 | case CPU_ONLINE: |
626 | appldata_online_cpu((long) hcpu); | 627 | appldata_online_cpu((long) hcpu); |
627 | break; | 628 | break; |
628 | #ifdef CONFIG_HOTPLUG_CPU | ||
629 | case CPU_DEAD: | 629 | case CPU_DEAD: |
630 | appldata_offline_cpu((long) hcpu); | 630 | appldata_offline_cpu((long) hcpu); |
631 | break; | 631 | break; |
632 | #endif | ||
633 | default: | 632 | default: |
634 | break; | 633 | break; |
635 | } | 634 | } |
636 | return NOTIFY_OK; | 635 | return NOTIFY_OK; |
637 | } | 636 | } |
638 | 637 | ||
639 | static struct notifier_block __devinitdata appldata_nb = { | 638 | static struct notifier_block appldata_nb = { |
640 | .notifier_call = appldata_cpu_notify, | 639 | .notifier_call = appldata_cpu_notify, |
641 | }; | 640 | }; |
641 | #endif | ||
642 | 642 | ||
643 | /* | 643 | /* |
644 | * appldata_init() | 644 | * appldata_init() |
@@ -662,7 +662,7 @@ static int __init appldata_init(void) | |||
662 | appldata_online_cpu(i); | 662 | appldata_online_cpu(i); |
663 | 663 | ||
664 | /* Register cpu hotplug notifier */ | 664 | /* Register cpu hotplug notifier */ |
665 | register_cpu_notifier(&appldata_nb); | 665 | register_hotcpu_notifier(&appldata_nb); |
666 | 666 | ||
667 | appldata_sysctl_header = register_sysctl_table(appldata_dir_table, 1); | 667 | appldata_sysctl_header = register_sysctl_table(appldata_dir_table, 1); |
668 | #ifdef MODULE | 668 | #ifdef MODULE |
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index f4dfc10026d2..f1d4591eddbb 100644 --- a/arch/s390/defconfig +++ b/arch/s390/defconfig | |||
@@ -1,13 +1,16 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.17-rc1 | 3 | # Linux kernel version: 2.6.18-rc2 |
4 | # Mon Apr 3 14:34:15 2006 | 4 | # Thu Jul 27 13:51:07 2006 |
5 | # | 5 | # |
6 | CONFIG_MMU=y | 6 | CONFIG_MMU=y |
7 | CONFIG_LOCKDEP_SUPPORT=y | ||
8 | CONFIG_STACKTRACE_SUPPORT=y | ||
7 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 9 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
8 | CONFIG_GENERIC_HWEIGHT=y | 10 | CONFIG_GENERIC_HWEIGHT=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 11 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_S390=y | 12 | CONFIG_S390=y |
13 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
11 | 14 | ||
12 | # | 15 | # |
13 | # Code maturity level options | 16 | # Code maturity level options |
@@ -25,6 +28,7 @@ CONFIG_SWAP=y | |||
25 | CONFIG_SYSVIPC=y | 28 | CONFIG_SYSVIPC=y |
26 | CONFIG_POSIX_MQUEUE=y | 29 | CONFIG_POSIX_MQUEUE=y |
27 | # CONFIG_BSD_PROCESS_ACCT is not set | 30 | # CONFIG_BSD_PROCESS_ACCT is not set |
31 | # CONFIG_TASKSTATS is not set | ||
28 | CONFIG_SYSCTL=y | 32 | CONFIG_SYSCTL=y |
29 | CONFIG_AUDIT=y | 33 | CONFIG_AUDIT=y |
30 | # CONFIG_AUDITSYSCALL is not set | 34 | # CONFIG_AUDITSYSCALL is not set |
@@ -43,10 +47,12 @@ CONFIG_PRINTK=y | |||
43 | CONFIG_BUG=y | 47 | CONFIG_BUG=y |
44 | CONFIG_ELF_CORE=y | 48 | CONFIG_ELF_CORE=y |
45 | CONFIG_BASE_FULL=y | 49 | CONFIG_BASE_FULL=y |
50 | CONFIG_RT_MUTEXES=y | ||
46 | CONFIG_FUTEX=y | 51 | CONFIG_FUTEX=y |
47 | CONFIG_EPOLL=y | 52 | CONFIG_EPOLL=y |
48 | CONFIG_SHMEM=y | 53 | CONFIG_SHMEM=y |
49 | CONFIG_SLAB=y | 54 | CONFIG_SLAB=y |
55 | CONFIG_VM_EVENT_COUNTERS=y | ||
50 | # CONFIG_TINY_SHMEM is not set | 56 | # CONFIG_TINY_SHMEM is not set |
51 | CONFIG_BASE_SMALL=0 | 57 | CONFIG_BASE_SMALL=0 |
52 | # CONFIG_SLOB is not set | 58 | # CONFIG_SLOB is not set |
@@ -94,7 +100,6 @@ CONFIG_HOTPLUG_CPU=y | |||
94 | CONFIG_DEFAULT_MIGRATION_COST=1000000 | 100 | CONFIG_DEFAULT_MIGRATION_COST=1000000 |
95 | CONFIG_COMPAT=y | 101 | CONFIG_COMPAT=y |
96 | CONFIG_SYSVIPC_COMPAT=y | 102 | CONFIG_SYSVIPC_COMPAT=y |
97 | CONFIG_BINFMT_ELF32=y | ||
98 | 103 | ||
99 | # | 104 | # |
100 | # Code generation options | 105 | # Code generation options |
@@ -115,6 +120,7 @@ CONFIG_FLATMEM=y | |||
115 | CONFIG_FLAT_NODE_MEM_MAP=y | 120 | CONFIG_FLAT_NODE_MEM_MAP=y |
116 | # CONFIG_SPARSEMEM_STATIC is not set | 121 | # CONFIG_SPARSEMEM_STATIC is not set |
117 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 122 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
123 | CONFIG_RESOURCES_64BIT=y | ||
118 | 124 | ||
119 | # | 125 | # |
120 | # I/O subsystem configuration | 126 | # I/O subsystem configuration |
@@ -142,6 +148,7 @@ CONFIG_VIRT_CPU_ACCOUNTING=y | |||
142 | # CONFIG_APPLDATA_BASE is not set | 148 | # CONFIG_APPLDATA_BASE is not set |
143 | CONFIG_NO_IDLE_HZ=y | 149 | CONFIG_NO_IDLE_HZ=y |
144 | CONFIG_NO_IDLE_HZ_INIT=y | 150 | CONFIG_NO_IDLE_HZ_INIT=y |
151 | CONFIG_S390_HYPFS_FS=y | ||
145 | CONFIG_KEXEC=y | 152 | CONFIG_KEXEC=y |
146 | 153 | ||
147 | # | 154 | # |
@@ -174,6 +181,8 @@ CONFIG_IP_FIB_HASH=y | |||
174 | # CONFIG_INET_IPCOMP is not set | 181 | # CONFIG_INET_IPCOMP is not set |
175 | # CONFIG_INET_XFRM_TUNNEL is not set | 182 | # CONFIG_INET_XFRM_TUNNEL is not set |
176 | # CONFIG_INET_TUNNEL is not set | 183 | # CONFIG_INET_TUNNEL is not set |
184 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
185 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
177 | CONFIG_INET_DIAG=y | 186 | CONFIG_INET_DIAG=y |
178 | CONFIG_INET_TCP_DIAG=y | 187 | CONFIG_INET_TCP_DIAG=y |
179 | # CONFIG_TCP_CONG_ADVANCED is not set | 188 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -186,7 +195,10 @@ CONFIG_IPV6=y | |||
186 | # CONFIG_INET6_IPCOMP is not set | 195 | # CONFIG_INET6_IPCOMP is not set |
187 | # CONFIG_INET6_XFRM_TUNNEL is not set | 196 | # CONFIG_INET6_XFRM_TUNNEL is not set |
188 | # CONFIG_INET6_TUNNEL is not set | 197 | # CONFIG_INET6_TUNNEL is not set |
198 | CONFIG_INET6_XFRM_MODE_TRANSPORT=y | ||
199 | CONFIG_INET6_XFRM_MODE_TUNNEL=y | ||
189 | # CONFIG_IPV6_TUNNEL is not set | 200 | # CONFIG_IPV6_TUNNEL is not set |
201 | # CONFIG_NETWORK_SECMARK is not set | ||
190 | # CONFIG_NETFILTER is not set | 202 | # CONFIG_NETFILTER is not set |
191 | 203 | ||
192 | # | 204 | # |
@@ -263,6 +275,7 @@ CONFIG_NET_ESTIMATOR=y | |||
263 | # Network testing | 275 | # Network testing |
264 | # | 276 | # |
265 | # CONFIG_NET_PKTGEN is not set | 277 | # CONFIG_NET_PKTGEN is not set |
278 | # CONFIG_NET_TCPPROBE is not set | ||
266 | # CONFIG_HAMRADIO is not set | 279 | # CONFIG_HAMRADIO is not set |
267 | # CONFIG_IRDA is not set | 280 | # CONFIG_IRDA is not set |
268 | # CONFIG_BT is not set | 281 | # CONFIG_BT is not set |
@@ -276,6 +289,7 @@ CONFIG_STANDALONE=y | |||
276 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 289 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
277 | # CONFIG_FW_LOADER is not set | 290 | # CONFIG_FW_LOADER is not set |
278 | # CONFIG_DEBUG_DRIVER is not set | 291 | # CONFIG_DEBUG_DRIVER is not set |
292 | CONFIG_SYS_HYPERVISOR=y | ||
279 | 293 | ||
280 | # | 294 | # |
281 | # Connector - unified userspace <-> kernelspace linker | 295 | # Connector - unified userspace <-> kernelspace linker |
@@ -334,6 +348,7 @@ CONFIG_BLK_DEV_NBD=m | |||
334 | CONFIG_BLK_DEV_RAM=y | 348 | CONFIG_BLK_DEV_RAM=y |
335 | CONFIG_BLK_DEV_RAM_COUNT=16 | 349 | CONFIG_BLK_DEV_RAM_COUNT=16 |
336 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 350 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
351 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||
337 | CONFIG_BLK_DEV_INITRD=y | 352 | CONFIG_BLK_DEV_INITRD=y |
338 | # CONFIG_CDROM_PKTCDVD is not set | 353 | # CONFIG_CDROM_PKTCDVD is not set |
339 | 354 | ||
@@ -359,9 +374,7 @@ CONFIG_MD_LINEAR=m | |||
359 | CONFIG_MD_RAID0=m | 374 | CONFIG_MD_RAID0=m |
360 | CONFIG_MD_RAID1=m | 375 | CONFIG_MD_RAID1=m |
361 | # CONFIG_MD_RAID10 is not set | 376 | # CONFIG_MD_RAID10 is not set |
362 | CONFIG_MD_RAID5=m | 377 | # CONFIG_MD_RAID456 is not set |
363 | # CONFIG_MD_RAID5_RESHAPE is not set | ||
364 | # CONFIG_MD_RAID6 is not set | ||
365 | CONFIG_MD_MULTIPATH=m | 378 | CONFIG_MD_MULTIPATH=m |
366 | # CONFIG_MD_FAULTY is not set | 379 | # CONFIG_MD_FAULTY is not set |
367 | CONFIG_BLK_DEV_DM=y | 380 | CONFIG_BLK_DEV_DM=y |
@@ -419,7 +432,8 @@ CONFIG_S390_TAPE_34XX=m | |||
419 | # | 432 | # |
420 | # Cryptographic devices | 433 | # Cryptographic devices |
421 | # | 434 | # |
422 | CONFIG_Z90CRYPT=m | 435 | CONFIG_ZCRYPT=m |
436 | # CONFIG_ZCRYPT_MONOLITHIC is not set | ||
423 | 437 | ||
424 | # | 438 | # |
425 | # Network device support | 439 | # Network device support |
@@ -509,6 +523,7 @@ CONFIG_FS_MBCACHE=y | |||
509 | # CONFIG_MINIX_FS is not set | 523 | # CONFIG_MINIX_FS is not set |
510 | # CONFIG_ROMFS_FS is not set | 524 | # CONFIG_ROMFS_FS is not set |
511 | CONFIG_INOTIFY=y | 525 | CONFIG_INOTIFY=y |
526 | CONFIG_INOTIFY_USER=y | ||
512 | # CONFIG_QUOTA is not set | 527 | # CONFIG_QUOTA is not set |
513 | CONFIG_DNOTIFY=y | 528 | CONFIG_DNOTIFY=y |
514 | # CONFIG_AUTOFS_FS is not set | 529 | # CONFIG_AUTOFS_FS is not set |
@@ -614,26 +629,36 @@ CONFIG_MSDOS_PARTITION=y | |||
614 | # Instrumentation Support | 629 | # Instrumentation Support |
615 | # | 630 | # |
616 | # CONFIG_PROFILING is not set | 631 | # CONFIG_PROFILING is not set |
617 | # CONFIG_STATISTICS is not set | 632 | CONFIG_STATISTICS=y |
633 | CONFIG_KPROBES=y | ||
618 | 634 | ||
619 | # | 635 | # |
620 | # Kernel hacking | 636 | # Kernel hacking |
621 | # | 637 | # |
638 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
622 | # CONFIG_PRINTK_TIME is not set | 639 | # CONFIG_PRINTK_TIME is not set |
623 | CONFIG_MAGIC_SYSRQ=y | 640 | CONFIG_MAGIC_SYSRQ=y |
641 | # CONFIG_UNUSED_SYMBOLS is not set | ||
624 | CONFIG_DEBUG_KERNEL=y | 642 | CONFIG_DEBUG_KERNEL=y |
625 | CONFIG_LOG_BUF_SHIFT=17 | 643 | CONFIG_LOG_BUF_SHIFT=17 |
626 | # CONFIG_DETECT_SOFTLOCKUP is not set | 644 | # CONFIG_DETECT_SOFTLOCKUP is not set |
627 | # CONFIG_SCHEDSTATS is not set | 645 | # CONFIG_SCHEDSTATS is not set |
628 | # CONFIG_DEBUG_SLAB is not set | 646 | # CONFIG_DEBUG_SLAB is not set |
629 | CONFIG_DEBUG_PREEMPT=y | 647 | CONFIG_DEBUG_PREEMPT=y |
630 | CONFIG_DEBUG_MUTEXES=y | 648 | # CONFIG_DEBUG_RT_MUTEXES is not set |
649 | # CONFIG_RT_MUTEX_TESTER is not set | ||
631 | CONFIG_DEBUG_SPINLOCK=y | 650 | CONFIG_DEBUG_SPINLOCK=y |
651 | CONFIG_DEBUG_MUTEXES=y | ||
652 | # CONFIG_DEBUG_RWSEMS is not set | ||
653 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
654 | # CONFIG_PROVE_LOCKING is not set | ||
632 | CONFIG_DEBUG_SPINLOCK_SLEEP=y | 655 | CONFIG_DEBUG_SPINLOCK_SLEEP=y |
656 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
633 | # CONFIG_DEBUG_KOBJECT is not set | 657 | # CONFIG_DEBUG_KOBJECT is not set |
634 | # CONFIG_DEBUG_INFO is not set | 658 | # CONFIG_DEBUG_INFO is not set |
635 | CONFIG_DEBUG_FS=y | 659 | CONFIG_DEBUG_FS=y |
636 | # CONFIG_DEBUG_VM is not set | 660 | # CONFIG_DEBUG_VM is not set |
661 | # CONFIG_FRAME_POINTER is not set | ||
637 | # CONFIG_UNWIND_INFO is not set | 662 | # CONFIG_UNWIND_INFO is not set |
638 | CONFIG_FORCED_INLINING=y | 663 | CONFIG_FORCED_INLINING=y |
639 | # CONFIG_RCU_TORTURE_TEST is not set | 664 | # CONFIG_RCU_TORTURE_TEST is not set |
@@ -688,3 +713,4 @@ CONFIG_CRYPTO=y | |||
688 | # CONFIG_CRC16 is not set | 713 | # CONFIG_CRC16 is not set |
689 | CONFIG_CRC32=m | 714 | CONFIG_CRC32=m |
690 | # CONFIG_LIBCRC32C is not set | 715 | # CONFIG_LIBCRC32C is not set |
716 | CONFIG_PLIST=y | ||
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c index efa74af7f04a..1785bce2b919 100644 --- a/arch/s390/hypfs/hypfs_diag.c +++ b/arch/s390/hypfs/hypfs_diag.c | |||
@@ -403,7 +403,7 @@ static void *diag204_get_buffer(enum diag204_format fmt, int *pages) | |||
403 | *pages = 1; | 403 | *pages = 1; |
404 | return diag204_alloc_rbuf(); | 404 | return diag204_alloc_rbuf(); |
405 | } else {/* INFO_EXT */ | 405 | } else {/* INFO_EXT */ |
406 | *pages = diag204(SUBC_RSI | INFO_EXT, 0, 0); | 406 | *pages = diag204(SUBC_RSI | INFO_EXT, 0, NULL); |
407 | if (*pages <= 0) | 407 | if (*pages <= 0) |
408 | return ERR_PTR(-ENOSYS); | 408 | return ERR_PTR(-ENOSYS); |
409 | else | 409 | else |
diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile index eabf00a6f770..86601a945709 100644 --- a/arch/s390/kernel/Makefile +++ b/arch/s390/kernel/Makefile | |||
@@ -17,8 +17,8 @@ obj-$(CONFIG_MODULES) += s390_ksyms.o module.o | |||
17 | obj-$(CONFIG_SMP) += smp.o | 17 | obj-$(CONFIG_SMP) += smp.o |
18 | 18 | ||
19 | obj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o \ | 19 | obj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o \ |
20 | compat_wrapper.o compat_exec_domain.o | 20 | compat_wrapper.o compat_exec_domain.o \ |
21 | obj-$(CONFIG_BINFMT_ELF32) += binfmt_elf32.o | 21 | binfmt_elf32.o |
22 | 22 | ||
23 | obj-$(CONFIG_VIRT_TIMER) += vtime.o | 23 | obj-$(CONFIG_VIRT_TIMER) += vtime.o |
24 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 24 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index cabb4ff54cd7..785c9f70ac98 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -409,7 +409,7 @@ asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info) | |||
409 | mm_segment_t old_fs = get_fs (); | 409 | mm_segment_t old_fs = get_fs (); |
410 | 410 | ||
411 | set_fs (KERNEL_DS); | 411 | set_fs (KERNEL_DS); |
412 | ret = sys_sysinfo(&s); | 412 | ret = sys_sysinfo((struct sysinfo __user *) &s); |
413 | set_fs (old_fs); | 413 | set_fs (old_fs); |
414 | err = put_user (s.uptime, &info->uptime); | 414 | err = put_user (s.uptime, &info->uptime); |
415 | err |= __put_user (s.loads[0], &info->loads[0]); | 415 | err |= __put_user (s.loads[0], &info->loads[0]); |
@@ -438,7 +438,7 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid, | |||
438 | mm_segment_t old_fs = get_fs (); | 438 | mm_segment_t old_fs = get_fs (); |
439 | 439 | ||
440 | set_fs (KERNEL_DS); | 440 | set_fs (KERNEL_DS); |
441 | ret = sys_sched_rr_get_interval(pid, &t); | 441 | ret = sys_sched_rr_get_interval(pid, (struct timespec __user *) &t); |
442 | set_fs (old_fs); | 442 | set_fs (old_fs); |
443 | if (put_compat_timespec(&t, interval)) | 443 | if (put_compat_timespec(&t, interval)) |
444 | return -EFAULT; | 444 | return -EFAULT; |
@@ -464,7 +464,10 @@ asmlinkage long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, | |||
464 | } | 464 | } |
465 | } | 465 | } |
466 | set_fs (KERNEL_DS); | 466 | set_fs (KERNEL_DS); |
467 | ret = sys_rt_sigprocmask(how, set ? &s : NULL, oset ? &s : NULL, sigsetsize); | 467 | ret = sys_rt_sigprocmask(how, |
468 | set ? (sigset_t __user *) &s : NULL, | ||
469 | oset ? (sigset_t __user *) &s : NULL, | ||
470 | sigsetsize); | ||
468 | set_fs (old_fs); | 471 | set_fs (old_fs); |
469 | if (ret) return ret; | 472 | if (ret) return ret; |
470 | if (oset) { | 473 | if (oset) { |
@@ -489,7 +492,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, | |||
489 | mm_segment_t old_fs = get_fs(); | 492 | mm_segment_t old_fs = get_fs(); |
490 | 493 | ||
491 | set_fs (KERNEL_DS); | 494 | set_fs (KERNEL_DS); |
492 | ret = sys_rt_sigpending(&s, sigsetsize); | 495 | ret = sys_rt_sigpending((sigset_t __user *) &s, sigsetsize); |
493 | set_fs (old_fs); | 496 | set_fs (old_fs); |
494 | if (!ret) { | 497 | if (!ret) { |
495 | switch (_NSIG_WORDS) { | 498 | switch (_NSIG_WORDS) { |
@@ -514,7 +517,7 @@ sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) | |||
514 | if (copy_siginfo_from_user32(&info, uinfo)) | 517 | if (copy_siginfo_from_user32(&info, uinfo)) |
515 | return -EFAULT; | 518 | return -EFAULT; |
516 | set_fs (KERNEL_DS); | 519 | set_fs (KERNEL_DS); |
517 | ret = sys_rt_sigqueueinfo(pid, sig, &info); | 520 | ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __user *) &info); |
518 | set_fs (old_fs); | 521 | set_fs (old_fs); |
519 | return ret; | 522 | return ret; |
520 | } | 523 | } |
@@ -674,7 +677,8 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offse | |||
674 | return -EFAULT; | 677 | return -EFAULT; |
675 | 678 | ||
676 | set_fs(KERNEL_DS); | 679 | set_fs(KERNEL_DS); |
677 | ret = sys_sendfile(out_fd, in_fd, offset ? &of : NULL, count); | 680 | ret = sys_sendfile(out_fd, in_fd, |
681 | offset ? (off_t __user *) &of : NULL, count); | ||
678 | set_fs(old_fs); | 682 | set_fs(old_fs); |
679 | 683 | ||
680 | if (offset && put_user(of, offset)) | 684 | if (offset && put_user(of, offset)) |
@@ -694,7 +698,8 @@ asmlinkage long sys32_sendfile64(int out_fd, int in_fd, | |||
694 | return -EFAULT; | 698 | return -EFAULT; |
695 | 699 | ||
696 | set_fs(KERNEL_DS); | 700 | set_fs(KERNEL_DS); |
697 | ret = sys_sendfile64(out_fd, in_fd, offset ? &lof : NULL, count); | 701 | ret = sys_sendfile64(out_fd, in_fd, |
702 | offset ? (loff_t __user *) &lof : NULL, count); | ||
698 | set_fs(old_fs); | 703 | set_fs(old_fs); |
699 | 704 | ||
700 | if (offset && put_user(lof, offset)) | 705 | if (offset && put_user(lof, offset)) |
diff --git a/arch/s390/kernel/head31.S b/arch/s390/kernel/head31.S index d00de17b3778..a4dc61f3285e 100644 --- a/arch/s390/kernel/head31.S +++ b/arch/s390/kernel/head31.S | |||
@@ -273,7 +273,7 @@ startup_continue: | |||
273 | .Lbss_end: .long _end | 273 | .Lbss_end: .long _end |
274 | .Lparmaddr: .long PARMAREA | 274 | .Lparmaddr: .long PARMAREA |
275 | .Lsccbaddr: .long .Lsccb | 275 | .Lsccbaddr: .long .Lsccb |
276 | .align 4096 | 276 | .org 0x12000 |
277 | .Lsccb: | 277 | .Lsccb: |
278 | .hword 0x1000 # length, one page | 278 | .hword 0x1000 # length, one page |
279 | .byte 0x00,0x00,0x00 | 279 | .byte 0x00,0x00,0x00 |
@@ -290,7 +290,7 @@ startup_continue: | |||
290 | .Lscpincr2: | 290 | .Lscpincr2: |
291 | .quad 0x00 | 291 | .quad 0x00 |
292 | .fill 3984,1,0 | 292 | .fill 3984,1,0 |
293 | .align 4096 | 293 | .org 0x13000 |
294 | 294 | ||
295 | #ifdef CONFIG_SHARED_KERNEL | 295 | #ifdef CONFIG_SHARED_KERNEL |
296 | .org 0x100000 | 296 | .org 0x100000 |
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index 47744fcca930..9d80c5b1ef95 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
@@ -268,7 +268,7 @@ startup_continue: | |||
268 | .Lparmaddr: | 268 | .Lparmaddr: |
269 | .quad PARMAREA | 269 | .quad PARMAREA |
270 | 270 | ||
271 | .align 4096 | 271 | .org 0x12000 |
272 | .Lsccb: | 272 | .Lsccb: |
273 | .hword 0x1000 # length, one page | 273 | .hword 0x1000 # length, one page |
274 | .byte 0x00,0x00,0x00 | 274 | .byte 0x00,0x00,0x00 |
@@ -285,7 +285,7 @@ startup_continue: | |||
285 | .Lscpincr2: | 285 | .Lscpincr2: |
286 | .quad 0x00 | 286 | .quad 0x00 |
287 | .fill 3984,1,0 | 287 | .fill 3984,1,0 |
288 | .align 4096 | 288 | .org 0x13000 |
289 | 289 | ||
290 | #ifdef CONFIG_SHARED_KERNEL | 290 | #ifdef CONFIG_SHARED_KERNEL |
291 | .org 0x100000 | 291 | .org 0x100000 |
diff --git a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c index fbde6a915264..60b1ea9f946b 100644 --- a/arch/s390/kernel/machine_kexec.c +++ b/arch/s390/kernel/machine_kexec.c | |||
@@ -63,6 +63,7 @@ NORET_TYPE void | |||
63 | machine_kexec(struct kimage *image) | 63 | machine_kexec(struct kimage *image) |
64 | { | 64 | { |
65 | clear_all_subchannels(); | 65 | clear_all_subchannels(); |
66 | cio_reset_channel_paths(); | ||
66 | 67 | ||
67 | /* Disable lowcore protection */ | 68 | /* Disable lowcore protection */ |
68 | ctl_clear_bit(0,28); | 69 | ctl_clear_bit(0,28); |
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c index c271cdab58e2..d989ed45a7aa 100644 --- a/arch/s390/kernel/module.c +++ b/arch/s390/kernel/module.c | |||
@@ -119,7 +119,7 @@ module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, | |||
119 | int nrela, i, j; | 119 | int nrela, i, j; |
120 | 120 | ||
121 | /* Find symbol table and string table. */ | 121 | /* Find symbol table and string table. */ |
122 | symtab = 0; | 122 | symtab = NULL; |
123 | for (i = 0; i < hdr->e_shnum; i++) | 123 | for (i = 0; i < hdr->e_shnum; i++) |
124 | switch (sechdrs[i].sh_type) { | 124 | switch (sechdrs[i].sh_type) { |
125 | case SHT_SYMTAB: | 125 | case SHT_SYMTAB: |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 78c8e5548caf..d3cbfa3005ec 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -172,7 +172,7 @@ void show_regs(struct pt_regs *regs) | |||
172 | show_registers(regs); | 172 | show_registers(regs); |
173 | /* Show stack backtrace if pt_regs is from kernel mode */ | 173 | /* Show stack backtrace if pt_regs is from kernel mode */ |
174 | if (!(regs->psw.mask & PSW_MASK_PSTATE)) | 174 | if (!(regs->psw.mask & PSW_MASK_PSTATE)) |
175 | show_trace(0,(unsigned long *) regs->gprs[15]); | 175 | show_trace(NULL, (unsigned long *) regs->gprs[15]); |
176 | } | 176 | } |
177 | 177 | ||
178 | extern void kernel_thread_starter(void); | 178 | extern void kernel_thread_starter(void); |
diff --git a/arch/s390/kernel/profile.c b/arch/s390/kernel/profile.c index 7ba777eec1a8..b81aa1f569ca 100644 --- a/arch/s390/kernel/profile.c +++ b/arch/s390/kernel/profile.c | |||
@@ -13,7 +13,7 @@ static struct proc_dir_entry * root_irq_dir; | |||
13 | void init_irq_proc(void) | 13 | void init_irq_proc(void) |
14 | { | 14 | { |
15 | /* create /proc/irq */ | 15 | /* create /proc/irq */ |
16 | root_irq_dir = proc_mkdir("irq", 0); | 16 | root_irq_dir = proc_mkdir("irq", NULL); |
17 | 17 | ||
18 | /* create /proc/irq/prof_cpu_mask */ | 18 | /* create /proc/irq/prof_cpu_mask */ |
19 | create_prof_cpu_mask(root_irq_dir); | 19 | create_prof_cpu_mask(root_irq_dir); |
diff --git a/arch/s390/kernel/s390_ext.c b/arch/s390/kernel/s390_ext.c index 207bc511a6e3..c1b383537fec 100644 --- a/arch/s390/kernel/s390_ext.c +++ b/arch/s390/kernel/s390_ext.c | |||
@@ -24,7 +24,7 @@ | |||
24 | * (0x1202 external call, 0x1004 cpu timer, 0x2401 hwc console, 0x4000 | 24 | * (0x1202 external call, 0x1004 cpu timer, 0x2401 hwc console, 0x4000 |
25 | * iucv and 0x2603 pfault) this is always the first element. | 25 | * iucv and 0x2603 pfault) this is always the first element. |
26 | */ | 26 | */ |
27 | ext_int_info_t *ext_int_hash[256] = { 0, }; | 27 | ext_int_info_t *ext_int_hash[256] = { NULL, }; |
28 | 28 | ||
29 | static inline int ext_hash(__u16 code) | 29 | static inline int ext_hash(__u16 code) |
30 | { | 30 | { |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 1ca34f54ea8a..c902f059c7aa 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -877,31 +877,57 @@ static struct bin_attribute ipl_scp_data_attr = { | |||
877 | 877 | ||
878 | static decl_subsys(ipl, NULL, NULL); | 878 | static decl_subsys(ipl, NULL, NULL); |
879 | 879 | ||
880 | static int ipl_register_fcp_files(void) | ||
881 | { | ||
882 | int rc; | ||
883 | |||
884 | rc = sysfs_create_group(&ipl_subsys.kset.kobj, | ||
885 | &ipl_fcp_attr_group); | ||
886 | if (rc) | ||
887 | goto out; | ||
888 | rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj, | ||
889 | &ipl_parameter_attr); | ||
890 | if (rc) | ||
891 | goto out_ipl_parm; | ||
892 | rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj, | ||
893 | &ipl_scp_data_attr); | ||
894 | if (!rc) | ||
895 | goto out; | ||
896 | |||
897 | sysfs_remove_bin_file(&ipl_subsys.kset.kobj, &ipl_parameter_attr); | ||
898 | |||
899 | out_ipl_parm: | ||
900 | sysfs_remove_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group); | ||
901 | out: | ||
902 | return rc; | ||
903 | } | ||
904 | |||
880 | static int __init | 905 | static int __init |
881 | ipl_device_sysfs_register(void) { | 906 | ipl_device_sysfs_register(void) { |
882 | int rc; | 907 | int rc; |
883 | 908 | ||
884 | rc = firmware_register(&ipl_subsys); | 909 | rc = firmware_register(&ipl_subsys); |
885 | if (rc) | 910 | if (rc) |
886 | return rc; | 911 | goto out; |
887 | 912 | ||
888 | switch (get_ipl_type()) { | 913 | switch (get_ipl_type()) { |
889 | case ipl_type_ccw: | 914 | case ipl_type_ccw: |
890 | sysfs_create_group(&ipl_subsys.kset.kobj, &ipl_ccw_attr_group); | 915 | rc = sysfs_create_group(&ipl_subsys.kset.kobj, |
916 | &ipl_ccw_attr_group); | ||
891 | break; | 917 | break; |
892 | case ipl_type_fcp: | 918 | case ipl_type_fcp: |
893 | sysfs_create_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group); | 919 | rc = ipl_register_fcp_files(); |
894 | sysfs_create_bin_file(&ipl_subsys.kset.kobj, | ||
895 | &ipl_parameter_attr); | ||
896 | sysfs_create_bin_file(&ipl_subsys.kset.kobj, | ||
897 | &ipl_scp_data_attr); | ||
898 | break; | 920 | break; |
899 | default: | 921 | default: |
900 | sysfs_create_group(&ipl_subsys.kset.kobj, | 922 | rc = sysfs_create_group(&ipl_subsys.kset.kobj, |
901 | &ipl_unknown_attr_group); | 923 | &ipl_unknown_attr_group); |
902 | break; | 924 | break; |
903 | } | 925 | } |
904 | return 0; | 926 | |
927 | if (rc) | ||
928 | firmware_unregister(&ipl_subsys); | ||
929 | out: | ||
930 | return rc; | ||
905 | } | 931 | } |
906 | 932 | ||
907 | __initcall(ipl_device_sysfs_register); | 933 | __initcall(ipl_device_sysfs_register); |
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index f7fe9bc43397..74e6178fbaf2 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -379,7 +379,7 @@ void __init time_init(void) | |||
379 | -xtime.tv_sec, -xtime.tv_nsec); | 379 | -xtime.tv_sec, -xtime.tv_nsec); |
380 | 380 | ||
381 | /* request the clock comparator external interrupt */ | 381 | /* request the clock comparator external interrupt */ |
382 | if (register_early_external_interrupt(0x1004, 0, | 382 | if (register_early_external_interrupt(0x1004, NULL, |
383 | &ext_int_info_cc) != 0) | 383 | &ext_int_info_cc) != 0) |
384 | panic("Couldn't request external interrupt 0x1004"); | 384 | panic("Couldn't request external interrupt 0x1004"); |
385 | 385 | ||
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 12240c03a6dd..bde1d1d59858 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -170,7 +170,7 @@ void show_stack(struct task_struct *task, unsigned long *sp) | |||
170 | */ | 170 | */ |
171 | void dump_stack(void) | 171 | void dump_stack(void) |
172 | { | 172 | { |
173 | show_stack(0, 0); | 173 | show_stack(NULL, NULL); |
174 | } | 174 | } |
175 | 175 | ||
176 | EXPORT_SYMBOL(dump_stack); | 176 | EXPORT_SYMBOL(dump_stack); |
@@ -331,9 +331,9 @@ static void inline do_trap(long interruption_code, int signr, char *str, | |||
331 | } | 331 | } |
332 | } | 332 | } |
333 | 333 | ||
334 | static inline void *get_check_address(struct pt_regs *regs) | 334 | static inline void __user *get_check_address(struct pt_regs *regs) |
335 | { | 335 | { |
336 | return (void *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN); | 336 | return (void __user *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN); |
337 | } | 337 | } |
338 | 338 | ||
339 | void do_single_step(struct pt_regs *regs) | 339 | void do_single_step(struct pt_regs *regs) |
@@ -360,7 +360,7 @@ asmlinkage void name(struct pt_regs * regs, long interruption_code) \ | |||
360 | info.si_signo = signr; \ | 360 | info.si_signo = signr; \ |
361 | info.si_errno = 0; \ | 361 | info.si_errno = 0; \ |
362 | info.si_code = sicode; \ | 362 | info.si_code = sicode; \ |
363 | info.si_addr = (void *)siaddr; \ | 363 | info.si_addr = siaddr; \ |
364 | do_trap(interruption_code, signr, str, regs, &info); \ | 364 | do_trap(interruption_code, signr, str, regs, &info); \ |
365 | } | 365 | } |
366 | 366 | ||
@@ -392,7 +392,7 @@ DO_ERROR_INFO(SIGILL, "translation exception", translation_exception, | |||
392 | ILL_ILLOPN, get_check_address(regs)) | 392 | ILL_ILLOPN, get_check_address(regs)) |
393 | 393 | ||
394 | static inline void | 394 | static inline void |
395 | do_fp_trap(struct pt_regs *regs, void *location, | 395 | do_fp_trap(struct pt_regs *regs, void __user *location, |
396 | int fpc, long interruption_code) | 396 | int fpc, long interruption_code) |
397 | { | 397 | { |
398 | siginfo_t si; | 398 | siginfo_t si; |
@@ -424,10 +424,10 @@ asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code) | |||
424 | { | 424 | { |
425 | siginfo_t info; | 425 | siginfo_t info; |
426 | __u8 opcode[6]; | 426 | __u8 opcode[6]; |
427 | __u16 *location; | 427 | __u16 __user *location; |
428 | int signal = 0; | 428 | int signal = 0; |
429 | 429 | ||
430 | location = (__u16 *) get_check_address(regs); | 430 | location = get_check_address(regs); |
431 | 431 | ||
432 | /* | 432 | /* |
433 | * We got all needed information from the lowcore and can | 433 | * We got all needed information from the lowcore and can |
@@ -559,10 +559,10 @@ DO_ERROR_INFO(SIGILL, "specification exception", specification_exception, | |||
559 | 559 | ||
560 | asmlinkage void data_exception(struct pt_regs * regs, long interruption_code) | 560 | asmlinkage void data_exception(struct pt_regs * regs, long interruption_code) |
561 | { | 561 | { |
562 | __u16 *location; | 562 | __u16 __user *location; |
563 | int signal = 0; | 563 | int signal = 0; |
564 | 564 | ||
565 | location = (__u16 *) get_check_address(regs); | 565 | location = get_check_address(regs); |
566 | 566 | ||
567 | /* | 567 | /* |
568 | * We got all needed information from the lowcore and can | 568 | * We got all needed information from the lowcore and can |
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c index 8240cc77e06e..ae5cf5d03d41 100644 --- a/arch/s390/lib/string.c +++ b/arch/s390/lib/string.c | |||
@@ -233,7 +233,7 @@ char * strrchr(const char * s, int c) | |||
233 | if (s[len] == (char) c) | 233 | if (s[len] == (char) c) |
234 | return (char *) s + len; | 234 | return (char *) s + len; |
235 | } while (--len > 0); | 235 | } while (--len > 0); |
236 | return 0; | 236 | return NULL; |
237 | } | 237 | } |
238 | EXPORT_SYMBOL(strrchr); | 238 | EXPORT_SYMBOL(strrchr); |
239 | 239 | ||
@@ -267,7 +267,7 @@ char * strstr(const char * s1,const char * s2) | |||
267 | return (char *) s1; | 267 | return (char *) s1; |
268 | s1++; | 268 | s1++; |
269 | } | 269 | } |
270 | return 0; | 270 | return NULL; |
271 | } | 271 | } |
272 | EXPORT_SYMBOL(strstr); | 272 | EXPORT_SYMBOL(strstr); |
273 | 273 | ||
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index 81be2fec7dc5..ceea51cff03b 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c | |||
@@ -161,7 +161,7 @@ cmm_thread(void *dummy) | |||
161 | static void | 161 | static void |
162 | cmm_start_thread(void) | 162 | cmm_start_thread(void) |
163 | { | 163 | { |
164 | kernel_thread(cmm_thread, 0, 0); | 164 | kernel_thread(cmm_thread, NULL, 0); |
165 | } | 165 | } |
166 | 166 | ||
167 | static void | 167 | static void |
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 833d5941746a..7cd82575813d 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c | |||
@@ -144,7 +144,7 @@ static void do_sigsegv(struct pt_regs *regs, unsigned long error_code, | |||
144 | #endif | 144 | #endif |
145 | si.si_signo = SIGSEGV; | 145 | si.si_signo = SIGSEGV; |
146 | si.si_code = si_code; | 146 | si.si_code = si_code; |
147 | si.si_addr = (void *) address; | 147 | si.si_addr = (void __user *) address; |
148 | force_sig_info(SIGSEGV, &si, current); | 148 | force_sig_info(SIGSEGV, &si, current); |
149 | } | 149 | } |
150 | 150 | ||