Commit db165cde authored by Martin Schwidefsky's avatar Martin Schwidefsky Committed by Linus Torvalds

[PATCH] s390: uni-processor builds.

Fixes for s390 kernel configured with CONFIG_SMP=n.
parent a863aaa3
...@@ -290,13 +290,9 @@ ret_from_fork: ...@@ -290,13 +290,9 @@ ret_from_fork:
basr %r13,0 basr %r13,0
l %r13,.Lentry_base-.(%r13) # setup base pointer to &entry_base l %r13,.Lentry_base-.(%r13) # setup base pointer to &entry_base
GET_THREAD_INFO # load pointer to task_struct to R9 GET_THREAD_INFO # load pointer to task_struct to R9
#if CONFIG_SMP || CONFIG_PREEMPT
l %r1,BASED(.Lschedtail) l %r1,BASED(.Lschedtail)
la %r14,BASED(sysc_return) la %r14,BASED(sysc_return)
br %r1 # call schedule_tail, return to sysc_return br %r1 # call schedule_tail, return to sysc_return
#else
b BASED(sysc_return)
#endif
# #
# clone, fork, vfork, exec and sigreturn need glue, # clone, fork, vfork, exec and sigreturn need glue,
...@@ -973,8 +969,6 @@ restart_go: ...@@ -973,8 +969,6 @@ restart_go:
.Lsigaltstack: .long sys_sigaltstack .Lsigaltstack: .long sys_sigaltstack
.Ltrace: .long syscall_trace .Ltrace: .long syscall_trace
.Lvfork: .long sys_vfork .Lvfork: .long sys_vfork
#if CONFIG_SMP || CONFIG_PREEMPT
.Lschedtail: .long schedule_tail .Lschedtail: .long schedule_tail
#endif
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include <asm/smp.h> #include <asm/smp.h>
#include <asm/mmu_context.h> #include <asm/mmu_context.h>
#include <asm/cpcmd.h> #include <asm/cpcmd.h>
#include <asm/lowcore.h>
/* /*
* Machine setup.. * Machine setup..
...@@ -534,10 +535,14 @@ static int show_cpuinfo(struct seq_file *m, void *v) ...@@ -534,10 +535,14 @@ static int show_cpuinfo(struct seq_file *m, void *v)
(loops_per_jiffy/(5000/HZ))%100); (loops_per_jiffy/(5000/HZ))%100);
} }
if (cpu_online_map & (1 << n)) { if (cpu_online_map & (1 << n)) {
#ifdef CONFIG_SMP
if (smp_processor_id() == n) if (smp_processor_id() == n)
cpuinfo = &S390_lowcore.cpu_data; cpuinfo = &S390_lowcore.cpu_data;
else else
cpuinfo = &lowcore_ptr[n]->cpu_data; cpuinfo = &lowcore_ptr[n]->cpu_data;
#else
cpuinfo = &S390_lowcore.cpu_data;
#endif
seq_printf(m, "processor %li: " seq_printf(m, "processor %li: "
"version = %02X, " "version = %02X, "
"identification = %06X, " "identification = %06X, "
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/binfmts.h> #include <linux/binfmts.h>
#include <asm/ucontext.h> #include <asm/ucontext.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/lowcore.h>
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <asm/mathemu.h> #include <asm/mathemu.h>
#include <asm/cpcmd.h> #include <asm/cpcmd.h>
#include <asm/s390_ext.h> #include <asm/s390_ext.h>
#include <asm/lowcore.h>
/* Called from entry.S only */ /* Called from entry.S only */
extern void handle_per_exception(struct pt_regs *regs); extern void handle_per_exception(struct pt_regs *regs);
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/lowcore.h>
#include "sfp-util.h" #include "sfp-util.h"
#include <math-emu/soft-fp.h> #include <math-emu/soft-fp.h>
......
...@@ -489,8 +489,8 @@ do_machine_quiesce(void) ...@@ -489,8 +489,8 @@ do_machine_quiesce(void)
{ {
psw_t quiesce_psw; psw_t quiesce_psw;
quiesce_psw.mask = _DW_PSW_MASK; quiesce_psw.mask = PSW_BASE_BITS | PSW_MASK_WAIT;
queisce_psw.addr = 0xfff; quiesce_psw.addr = 0xfff;
__load_psw(quiesce_psw); __load_psw(quiesce_psw);
} }
#endif #endif
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <asm/ccwdev.h> #include <asm/ccwdev.h>
#include <asm/delay.h> #include <asm/delay.h>
#include <asm/cio.h> #include <asm/cio.h>
#include <asm/lowcore.h>
#include "cio.h" #include "cio.h"
#include "cio_debug.h" #include "cio_debug.h"
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <asm/ccwdev.h> #include <asm/ccwdev.h>
#include <asm/cio.h> #include <asm/cio.h>
#include <asm/delay.h> #include <asm/delay.h>
#include <asm/lowcore.h>
#include "cio.h" #include "cio.h"
#include "cio_debug.h" #include "cio_debug.h"
......
/* /*
* drivers/s390/cio/requestirq.c * drivers/s390/cio/requestirq.c
* S/390 common I/O routines -- enabling and disabling of devices * S/390 common I/O routines -- enabling and disabling of devices
* $Revision: 1.42 $ * $Revision: 1.44 $
* *
* Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH,
* IBM Corporation * IBM Corporation
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/lowcore.h>
#include "css.h" #include "css.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment