s390: core changes.
PATCH 1/1 s390: core changes.
[PATCH] s390: core changes.
From: Arnd Bergmann <[email protected]>
From: Christian Bornträger <[email protected]>
From: Michael Holzheu <[email protected]>
From: Martin Schwidefsky <[email protected]>
s390 core changes:
- Fix cpu_idle loop if /proc/sys/kernel/hz_timer is set.
- Store correct trap indication on 64 bit for call to do_debugger_trap in the single stepped svc code.
- Avoid the use of alloca in the debug feature.
- Remove extraneous includes of linux/version.h.
- Regenerate default configuration.
- Mention eServer z890 in Kconfig help text.
- Prevent gcc 3.4 from removing statically defined per cpu variables.
Signed-off-by Martin Schwidefsky <[email protected]>
diffstat:
arch/s390/Kconfig | 6 +- arch/s390/defconfig | 19 +++++-- arch/s390/kernel/debug.c | 120 ++++++++++++++++++++++++--------------------- arch/s390/kernel/entry64.S | 3 - arch/s390/kernel/time.c | 11 +--- include/asm-s390/debug.h | 1 include/asm-s390/percpu.h | 68 ++++++++++++++++++++----- include/asm-s390/vtoc.h | 1 8 files changed, 144 insertions(+), 85 deletions(-)
arch/s390/Kconfig +3 -3
@@ -67,9 +67,9 @@ on older 31 bit only CPUs. config MARCH_Z990 - bool "IBM eServer zSeries model z990" + bool "IBM eServer zSeries model z890 and z990" help - Select this enable optimizations for model z990. + Select this enable optimizations for model z890/z990. This will be slightly faster but does not work on older machines such as the z900.
@@ -154,7 +154,7 @@ tristate "QDIO support" ---help--- This driver provides the Queued Direct I/O base support for the - IBM S/390 (G5 and G6) and eServer zSeries (z800, z900 and z990). + IBM S/390 (G5 and G6) and eServer zSeries (z800, z890, z900 and z990). For details please refer to the documentation provided by IBM at <http://www10.software.ibm.com/developerworks/opensource/linux390>
arch/s390/defconfig +15 -4
@@ -29,6 +29,7 @@ # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y
@@ -45,6 +46,7 @@ CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set CONFIG_KMOD=y +CONFIG_STOP_MACHINE=y # # Base setup
@@ -84,12 +86,14 @@ # CONFIG_SHARED_KERNEL is not set # CONFIG_CMM is not set # CONFIG_VIRT_TIMER is not set -# CONFIG_NO_IDLE_HZ is not set +CONFIG_NO_IDLE_HZ=y +CONFIG_NO_IDLE_HZ_INIT=y # CONFIG_PCMCIA is not set # # Generic Driver Options # +CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER is not set # CONFIG_DEBUG_DRIVER is not set
@@ -126,7 +130,6 @@ # SCSI low-level drivers # # CONFIG_SCSI_AIC7XXX_OLD is not set -# CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_EATA_PIO is not set # CONFIG_SCSI_DEBUG is not set
@@ -277,6 +280,7 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m # CONFIG_NET_SCH_DELAY is not set +# CONFIG_NET_SCH_INGRESS is not set CONFIG_NET_QOS=y CONFIG_NET_ESTIMATOR=y CONFIG_NET_CLS=y
@@ -285,8 +289,11 @@ CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +# CONFIG_NET_CLS_IND is not set CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m +# CONFIG_NET_CLS_ACT is not set CONFIG_NET_CLS_POLICE=y #
@@ -311,7 +318,11 @@ # CONFIG_MII is not set # -# Gigabit Ethernet (1000/10000 Mbit) +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) # #
@@ -450,7 +461,6 @@ # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set # CONFIG_LDM_PARTITION is not set -# CONFIG_NEC98_PARTITION is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set # CONFIG_SUN_PARTITION is not set
@@ -509,5 +519,6 @@ # # Library routines # +# CONFIG_CRC16 is not set # CONFIG_CRC32 is not set # CONFIG_LIBCRC32C is not set
arch/s390/kernel/debug.c +66 -54
186 lines not on this page · raw message
arch/s390/kernel/entry64.S +2 -1
@@ -305,7 +305,8 @@ # sysc_singlestep: ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP - mvi SP_TRAP+1(%r15),0x28 # set trap indication to pgm check + lhi %r0,__LC_PGM_OLD_PSW + sth %r0,SP_TRAP(%r15) # set trap indication to pgm check la %r2,SP_PTREGS(%r15) # address of register-save area larl %r14,sysc_return # load adr. of system return jg do_debugger_trap # branch to do_debugger_trap
arch/s390/kernel/time.c +4 -7
@@ -518,19 +518,19 @@* Stop the HZ tick on the current CPU. * Only cpu_idle may call this function. */ -int stop_hz_timer (void ) +void stop_hz_timer (void ) {__u64 timer;if (sysctl_hz_timer !=0 ) -return 1 ; +return ;/* * Leave the clock comparator set up for the next timer * tick if either rcu or a softirq is pending. */ if (rcu_pending (smp_processor_id ()) ||local_softirq_pending ()) -return 1 ; +return ;/* * This cpu is going really idle. Set up the clock comparator
@@ -540,8 +540,6 @@ timer = (__u64) (next_timer_interrupt () - jiffies) + jiffies_64; timer = jiffies_timer_cc + timer *CLK_TICKS_PER_JIFFY ; asm volatile ("SCKC %0" : : "m" (timer)); - - return 0; }#endif
@@ -572,8 +570,7 @@#endif #ifdef CONFIG_NO_IDLE_HZ -if (stop_hz_timer ()) -return 1 ; +stop_hz_timer ();#endif /* enable monitor call class 0 */
include/asm-s390/debug.h +0 -1
@@ -34,7 +34,6 @@#define __DEBUG_FEATURE_VERSION 1/* version of debug feature */ #ifdef __KERNEL__ -#include <linux/version.h> #include <linux/spinlock.h> #include <linux/kernel.h> #include <linux/time.h>
include/asm-s390/percpu.h +54 -14
84 lines not on this page · raw message
include/asm-s390/vtoc.h +0 -1
@@ -14,7 +14,6 @@#include <linux/fs.h> #include <linux/types.h> #include <linux/hdreg.h> -#include <linux/version.h> #include <asm/dasd.h> #endif