From ab1809b4ed9a3aaf3b34133a776a94f9fad54cc4 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Tue, 4 Dec 2007 16:09:04 +0100 Subject: [S390] Fix compile error on 31bit without preemption Commit b8e7a54cd06b0b0174029ef3a7f5a1415a2c28f2 introduced a compile error if CONFIG_PREEMPT is not set: arch/s390/kernel/built-in.o: In function `cleanup_io_leave_insn': /space/kvm/arch/s390/kernel/entry.S:(.text+0xbfce): undefined reference to `preempt_schedule_irq' This patch hides preempt_schedule_irq if CONFIG_PREEMPT is not set. Signed-off-by: Christian Borntraeger Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/entry.S | 2 ++ 1 file changed, 2 insertions(+) (limited to 'arch') diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index b2b2edc40eb1..1a6dac8df6fb 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -1079,8 +1079,10 @@ cleanup_io_leave_insn: .Lexecve_tail: .long execve_tail .Ljump_table: .long pgm_check_table .Lschedule: .long schedule +#ifdef CONFIG_PREEMPT .Lpreempt_schedule_irq: .long preempt_schedule_irq +#endif .Ltrace: .long syscall_trace .Lschedtail: .long schedule_tail .Lsysc_table: .long sys_call_table -- cgit v1.2.3-59-g8ed1b From 7af0d6f753f5adf773f99470666b50490d3379f1 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Tue, 4 Dec 2007 16:09:05 +0100 Subject: [S390] Make sure the restore psw masks are initialized. In case of TRACE_IRQFLAGS the restore psw masks will not be initialized if noexec is turned on. This will lead to an immediate system crash. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/setup.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'arch') diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 50f8f1e3760e..577aa7dd660e 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -486,9 +486,7 @@ static void setup_addressing_mode(void) if (s390_noexec) { printk("S390 execute protection active, "); set_amode_and_uaccess(PSW_ASC_SECONDARY, PSW32_ASC_SECONDARY); - return; - } - if (switch_amode) { + } else if (switch_amode) { printk("S390 address spaces switched, "); set_amode_and_uaccess(PSW_ASC_PRIMARY, PSW32_ASC_PRIMARY); } -- cgit v1.2.3-59-g8ed1b