Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6

* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] Update default configuration.
[S390] nss: add missing .previous statement to asm function
[S390] increase default size of vmalloc area
[S390] s390: disable change bit override
[S390] fix io_return critical section cleanup
[S390] sclp_async: potential buffer overflow
[S390] arch/s390/kernel: Add missing unlock

+55 -26
+30 -10
arch/s390/defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.33-rc2 4 - # Mon Jan 4 09:03:07 2010 3 + # Linux kernel version: 2.6.34-rc3 4 + # Fri Apr 9 09:57:10 2010 5 5 # 6 6 CONFIG_SCHED_MC=y 7 7 CONFIG_MMU=y ··· 17 17 CONFIG_GENERIC_TIME_VSYSCALL=y 18 18 CONFIG_GENERIC_CLOCKEVENTS=y 19 19 CONFIG_GENERIC_BUG=y 20 + CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y 20 21 CONFIG_NO_IOMEM=y 21 22 CONFIG_NO_DMA=y 22 23 CONFIG_GENERIC_LOCKBREAK=y ··· 63 62 # CONFIG_RCU_TRACE is not set 64 63 CONFIG_RCU_FANOUT=64 65 64 # CONFIG_RCU_FANOUT_EXACT is not set 65 + # CONFIG_RCU_FAST_NO_HZ is not set 66 66 # CONFIG_TREE_RCU_TRACE is not set 67 67 CONFIG_IKCONFIG=y 68 68 CONFIG_IKCONFIG_PROC=y 69 69 CONFIG_LOG_BUF_SHIFT=17 70 - CONFIG_GROUP_SCHED=y 71 - CONFIG_FAIR_GROUP_SCHED=y 72 - # CONFIG_RT_GROUP_SCHED is not set 73 - CONFIG_USER_SCHED=y 74 - # CONFIG_CGROUP_SCHED is not set 75 70 CONFIG_CGROUPS=y 76 71 # CONFIG_CGROUP_DEBUG is not set 77 72 CONFIG_CGROUP_NS=y ··· 76 79 # CONFIG_CPUSETS is not set 77 80 # CONFIG_CGROUP_CPUACCT is not set 78 81 # CONFIG_RESOURCE_COUNTERS is not set 82 + # CONFIG_CGROUP_SCHED is not set 79 83 CONFIG_SYSFS_DEPRECATED=y 80 84 CONFIG_SYSFS_DEPRECATED_V2=y 81 85 # CONFIG_RELAY is not set ··· 91 93 CONFIG_RD_GZIP=y 92 94 CONFIG_RD_BZIP2=y 93 95 CONFIG_RD_LZMA=y 96 + CONFIG_RD_LZO=y 94 97 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 95 98 CONFIG_SYSCTL=y 96 99 CONFIG_ANON_INODES=y ··· 125 126 # CONFIG_SLUB is not set 126 127 # CONFIG_SLOB is not set 127 128 # CONFIG_PROFILING is not set 129 + CONFIG_TRACEPOINTS=y 128 130 CONFIG_HAVE_OPROFILE=y 129 131 CONFIG_KPROBES=y 130 132 CONFIG_HAVE_SYSCALL_WRAPPERS=y ··· 134 134 CONFIG_HAVE_KRETPROBES=y 135 135 CONFIG_HAVE_ARCH_TRACEHOOK=y 136 136 CONFIG_USE_GENERIC_SMP_HELPERS=y 137 + CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y 137 138 CONFIG_HAVE_DEFAULT_NO_SPIN_MUTEXES=y 138 139 139 140 # ··· 247 246 CONFIG_SMP=y 248 247 CONFIG_NR_CPUS=32 249 248 CONFIG_HOTPLUG_CPU=y 249 + # CONFIG_SCHED_BOOK is not set 250 250 CONFIG_COMPAT=y 251 251 CONFIG_SYSVIPC_COMPAT=y 252 252 CONFIG_AUDIT_ARCH=y ··· 347 345 CONFIG_HIBERNATION=y 348 346 CONFIG_PM_STD_PARTITION="" 349 347 # CONFIG_PM_RUNTIME is not set 348 + CONFIG_PM_OPS=y 350 349 CONFIG_NET=y 351 350 352 351 # 353 352 # Networking options 354 353 # 355 354 CONFIG_PACKET=y 356 - # CONFIG_PACKET_MMAP is not set 357 355 CONFIG_UNIX=y 358 356 CONFIG_XFRM=y 359 357 # CONFIG_XFRM_USER is not set ··· 531 529 # 532 530 # CONFIG_NET_PKTGEN is not set 533 531 # CONFIG_NET_TCPPROBE is not set 532 + # CONFIG_NET_DROP_MONITOR is not set 534 533 CONFIG_CAN=m 535 534 CONFIG_CAN_RAW=m 536 535 CONFIG_CAN_BCM=m ··· 608 605 # 609 606 # SCSI device support 610 607 # 608 + CONFIG_SCSI_MOD=y 611 609 # CONFIG_RAID_ATTRS is not set 612 610 CONFIG_SCSI=y 613 611 # CONFIG_SCSI_DMA is not set ··· 867 863 # CONFIG_BEFS_FS is not set 868 864 # CONFIG_BFS_FS is not set 869 865 # CONFIG_EFS_FS is not set 866 + # CONFIG_LOGFS is not set 870 867 # CONFIG_CRAMFS is not set 871 868 # CONFIG_SQUASHFS is not set 872 869 # CONFIG_VXFS_FS is not set ··· 896 891 # CONFIG_RPCSEC_GSS_KRB5 is not set 897 892 # CONFIG_RPCSEC_GSS_SPKM3 is not set 898 893 # CONFIG_SMB_FS is not set 894 + # CONFIG_CEPH_FS is not set 899 895 # CONFIG_CIFS is not set 900 896 # CONFIG_NCP_FS is not set 901 897 # CONFIG_CODA_FS is not set ··· 958 952 # CONFIG_LOCK_STAT is not set 959 953 CONFIG_DEBUG_SPINLOCK_SLEEP=y 960 954 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 955 + CONFIG_STACKTRACE=y 961 956 # CONFIG_DEBUG_KOBJECT is not set 962 957 CONFIG_DEBUG_BUGVERBOSE=y 963 958 # CONFIG_DEBUG_INFO is not set ··· 980 973 # CONFIG_LATENCYTOP is not set 981 974 CONFIG_SYSCTL_SYSCALL_CHECK=y 982 975 # CONFIG_DEBUG_PAGEALLOC is not set 976 + CONFIG_NOP_TRACER=y 983 977 CONFIG_HAVE_FUNCTION_TRACER=y 984 978 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 985 979 CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 986 980 CONFIG_HAVE_DYNAMIC_FTRACE=y 987 981 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 988 982 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 983 + CONFIG_RING_BUFFER=y 984 + CONFIG_EVENT_TRACING=y 985 + CONFIG_CONTEXT_SWITCH_TRACER=y 986 + CONFIG_TRACING=y 989 987 CONFIG_TRACING_SUPPORT=y 990 988 CONFIG_FTRACE=y 991 989 # CONFIG_FUNCTION_TRACER is not set ··· 1007 995 # CONFIG_KMEMTRACE is not set 1008 996 # CONFIG_WORKQUEUE_TRACER is not set 1009 997 # CONFIG_BLK_DEV_IO_TRACE is not set 998 + CONFIG_KPROBE_EVENT=y 999 + # CONFIG_RING_BUFFER_BENCHMARK is not set 1010 1000 # CONFIG_DYNAMIC_DEBUG is not set 1011 1001 CONFIG_SAMPLES=y 1002 + # CONFIG_SAMPLE_TRACEPOINTS is not set 1003 + # CONFIG_SAMPLE_TRACE_EVENTS is not set 1012 1004 # CONFIG_SAMPLE_KOBJECT is not set 1013 1005 # CONFIG_SAMPLE_KPROBES is not set 1006 + # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set 1014 1007 1015 1008 # 1016 1009 # Security options ··· 1049 1032 CONFIG_CRYPTO_MANAGER2=y 1050 1033 CONFIG_CRYPTO_GF128MUL=m 1051 1034 # CONFIG_CRYPTO_NULL is not set 1035 + # CONFIG_CRYPTO_PCRYPT is not set 1052 1036 CONFIG_CRYPTO_WORKQUEUE=y 1053 1037 # CONFIG_CRYPTO_CRYPTD is not set 1054 1038 CONFIG_CRYPTO_AUTHENC=m ··· 1137 1119 # CONFIG_CRYPTO_DES_S390 is not set 1138 1120 # CONFIG_CRYPTO_AES_S390 is not set 1139 1121 CONFIG_S390_PRNG=m 1140 - # CONFIG_BINARY_PRINTF is not set 1122 + CONFIG_BINARY_PRINTF=y 1141 1123 1142 1124 # 1143 1125 # Library routines ··· 1154 1136 CONFIG_ZLIB_INFLATE=y 1155 1137 CONFIG_ZLIB_DEFLATE=m 1156 1138 CONFIG_LZO_COMPRESS=m 1157 - CONFIG_LZO_DECOMPRESS=m 1139 + CONFIG_LZO_DECOMPRESS=y 1158 1140 CONFIG_DECOMPRESS_GZIP=y 1159 1141 CONFIG_DECOMPRESS_BZIP2=y 1160 1142 CONFIG_DECOMPRESS_LZMA=y 1143 + CONFIG_DECOMPRESS_LZO=y 1161 1144 CONFIG_NLATTR=y 1162 1145 CONFIG_HAVE_KVM=y 1163 1146 CONFIG_VIRTUALIZATION=y 1164 1147 CONFIG_KVM=m 1148 + # CONFIG_VHOST_NET is not set 1165 1149 CONFIG_VIRTIO=y 1166 1150 CONFIG_VIRTIO_RING=y 1167 1151 CONFIG_VIRTIO_BALLOON=m
+3 -3
arch/s390/include/asm/pgtable.h
··· 105 105 #ifndef __ASSEMBLY__ 106 106 /* 107 107 * The vmalloc area will always be on the topmost area of the kernel 108 - * mapping. We reserve 96MB (31bit) / 1GB (64bit) for vmalloc, 108 + * mapping. We reserve 96MB (31bit) / 128GB (64bit) for vmalloc, 109 109 * which should be enough for any sane case. 110 110 * By putting vmalloc at the top, we maximise the gap between physical 111 111 * memory and vmalloc to catch misplaced memory accesses. As a side ··· 120 120 #define VMALLOC_END 0x7e000000UL 121 121 #define VMEM_MAP_END 0x80000000UL 122 122 #else /* __s390x__ */ 123 - #define VMALLOC_SIZE (1UL << 30) 124 - #define VMALLOC_END 0x3e040000000UL 123 + #define VMALLOC_SIZE (128UL << 30) 124 + #define VMALLOC_END 0x3e000000000UL 125 125 #define VMEM_MAP_END 0x40000000000UL 126 126 #endif /* __s390x__ */ 127 127
+2 -1
arch/s390/kernel/early.c
··· 82 82 " lm 6,15,24(15)\n" 83 83 #endif 84 84 " br 14\n" 85 - " .size savesys_ipl_nss, .-savesys_ipl_nss\n"); 85 + " .size savesys_ipl_nss, .-savesys_ipl_nss\n" 86 + " .previous\n"); 86 87 87 88 static __initdata char upper_command_line[COMMAND_LINE_SIZE]; 88 89
+7 -1
arch/s390/kernel/entry.S
··· 964 964 clc 4(4,%r12),BASED(cleanup_table_io_work_loop) 965 965 bl BASED(0f) 966 966 clc 4(4,%r12),BASED(cleanup_table_io_work_loop+4) 967 - bl BASED(cleanup_io_return) 967 + bl BASED(cleanup_io_work_loop) 968 968 0: 969 969 br %r14 970 970 ··· 1038 1038 .long sysc_done - 8 + 0x80000000 1039 1039 1040 1040 cleanup_io_return: 1041 + mvc __LC_RETURN_PSW(4),0(%r12) 1042 + mvc __LC_RETURN_PSW+4(4),BASED(cleanup_table_io_return) 1043 + la %r12,__LC_RETURN_PSW 1044 + br %r14 1045 + 1046 + cleanup_io_work_loop: 1041 1047 mvc __LC_RETURN_PSW(4),0(%r12) 1042 1048 mvc __LC_RETURN_PSW+4(4),BASED(cleanup_table_io_work_loop) 1043 1049 la %r12,__LC_RETURN_PSW
+7 -1
arch/s390/kernel/entry64.S
··· 946 946 clc 8(8,%r12),BASED(cleanup_table_io_work_loop) 947 947 jl 0f 948 948 clc 8(8,%r12),BASED(cleanup_table_io_work_loop+8) 949 - jl cleanup_io_return 949 + jl cleanup_io_work_loop 950 950 0: 951 951 br %r14 952 952 ··· 1020 1020 .quad sysc_done - 16 1021 1021 1022 1022 cleanup_io_return: 1023 + mvc __LC_RETURN_PSW(8),0(%r12) 1024 + mvc __LC_RETURN_PSW+8(8),BASED(cleanup_table_io_return) 1025 + la %r12,__LC_RETURN_PSW 1026 + br %r14 1027 + 1028 + cleanup_io_work_loop: 1023 1029 mvc __LC_RETURN_PSW(8),0(%r12) 1024 1030 mvc __LC_RETURN_PSW+8(8),BASED(cleanup_table_io_work_loop) 1025 1031 la %r12,__LC_RETURN_PSW
+2 -1
arch/s390/kernel/topology.c
··· 165 165 default: 166 166 clear_cores(); 167 167 machine_has_topology = 0; 168 - return; 168 + goto out; 169 169 } 170 170 tle = next_tle(tle); 171 171 } 172 + out: 172 173 spin_unlock_irq(&topology_lock); 173 174 } 174 175
+3 -8
arch/s390/mm/vmem.c
··· 71 71 pte = alloc_bootmem(PTRS_PER_PTE * sizeof(pte_t)); 72 72 if (!pte) 73 73 return NULL; 74 - if (MACHINE_HAS_HPAGE) 75 - clear_table((unsigned long *) pte, _PAGE_TYPE_EMPTY | _PAGE_CO, 76 - PTRS_PER_PTE * sizeof(pte_t)); 77 - else 78 - clear_table((unsigned long *) pte, _PAGE_TYPE_EMPTY, 79 - PTRS_PER_PTE * sizeof(pte_t)); 74 + clear_table((unsigned long *) pte, _PAGE_TYPE_EMPTY, 75 + PTRS_PER_PTE * sizeof(pte_t)); 80 76 return pte; 81 77 } 82 78 ··· 113 117 if (MACHINE_HAS_HPAGE && !(address & ~HPAGE_MASK) && 114 118 (address + HPAGE_SIZE <= start + size) && 115 119 (address >= HPAGE_SIZE)) { 116 - pte_val(pte) |= _SEGMENT_ENTRY_LARGE | 117 - _SEGMENT_ENTRY_CO; 120 + pte_val(pte) |= _SEGMENT_ENTRY_LARGE; 118 121 pmd_val(*pm_dir) = pte_val(pte); 119 122 address += HPAGE_SIZE - PAGE_SIZE; 120 123 continue;
+1 -1
drivers/s390/char/sclp_async.c
··· 85 85 rc = copy_from_user(buf, buffer, sizeof(buf)); 86 86 if (rc != 0) 87 87 return -EFAULT; 88 - buf[len - 1] = '\0'; 88 + buf[sizeof(buf) - 1] = '\0'; 89 89 if (strict_strtoul(buf, 0, &val) != 0) 90 90 return -EINVAL; 91 91 if (val != 0 && val != 1)