git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git]
/
arch
/
s390
/
kernel
/
traps.c
diff --git
a/arch/s390/kernel/traps.c
b/arch/s390/kernel/traps.c
index
bde1d1d
..
a46793b
100644
(file)
--- a/
arch/s390/kernel/traps.c
+++ b/
arch/s390/kernel/traps.c
@@
-14,6
+14,7
@@
* 'Traps.c' handles hardware traps and faults after we have saved some
* state in 'asm.s'.
*/
* 'Traps.c' handles hardware traps and faults after we have saved some
* state in 'asm.s'.
*/
+#include <linux/config.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/string.h>
@@
-149,11
+150,13
@@
void show_stack(struct task_struct *task, unsigned long *sp)
unsigned long *stack;
int i;
unsigned long *stack;
int i;
+ // debugging aid: "show_stack(NULL);" prints the
+ // back trace for this cpu.
+
if (!sp)
if (!sp)
- stack = task ? (unsigned long *) task->thread.ksp : __r15;
- else
- stack = sp;
+ sp = task ? (unsigned long *) task->thread.ksp : __r15;
+ stack = sp;
for (i = 0; i < kstack_depth_to_print; i++) {
if (((addr_t) stack & (THREAD_SIZE-1)) == 0)
break;
for (i = 0; i < kstack_depth_to_print; i++) {
if (((addr_t) stack & (THREAD_SIZE-1)) == 0)
break;
@@
-170,7
+173,7
@@
void show_stack(struct task_struct *task, unsigned long *sp)
*/
void dump_stack(void)
{
*/
void dump_stack(void)
{
- show_stack(
NULL, NULL
);
+ show_stack(
0, 0
);
}
EXPORT_SYMBOL(dump_stack);
}
EXPORT_SYMBOL(dump_stack);
@@
-331,9
+334,9
@@
static void inline do_trap(long interruption_code, int signr, char *str,
}
}
}
}
-static inline void
__user
*get_check_address(struct pt_regs *regs)
+static inline void *get_check_address(struct pt_regs *regs)
{
{
- return (void
__user
*)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN);
+ return (void *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN);
}
void do_single_step(struct pt_regs *regs)
}
void do_single_step(struct pt_regs *regs)
@@
-360,7
+363,7
@@
asmlinkage void name(struct pt_regs * regs, long interruption_code) \
info.si_signo = signr; \
info.si_errno = 0; \
info.si_code = sicode; \
info.si_signo = signr; \
info.si_errno = 0; \
info.si_code = sicode; \
-
info.si_addr =
siaddr; \
+
info.si_addr = (void *)
siaddr; \
do_trap(interruption_code, signr, str, regs, &info); \
}
do_trap(interruption_code, signr, str, regs, &info); \
}
@@
-392,7
+395,7
@@
DO_ERROR_INFO(SIGILL, "translation exception", translation_exception,
ILL_ILLOPN, get_check_address(regs))
static inline void
ILL_ILLOPN, get_check_address(regs))
static inline void
-do_fp_trap(struct pt_regs *regs, void
__user
*location,
+do_fp_trap(struct pt_regs *regs, void *location,
int fpc, long interruption_code)
{
siginfo_t si;
int fpc, long interruption_code)
{
siginfo_t si;
@@
-424,10
+427,10
@@
asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code)
{
siginfo_t info;
__u8 opcode[6];
{
siginfo_t info;
__u8 opcode[6];
- __u16
__user
*location;
+ __u16 *location;
int signal = 0;
int signal = 0;
- location = get_check_address(regs);
+ location =
(__u16 *)
get_check_address(regs);
/*
* We got all needed information from the lowcore and can
/*
* We got all needed information from the lowcore and can
@@
-559,10
+562,10
@@
DO_ERROR_INFO(SIGILL, "specification exception", specification_exception,
asmlinkage void data_exception(struct pt_regs * regs, long interruption_code)
{
asmlinkage void data_exception(struct pt_regs * regs, long interruption_code)
{
- __u16
__user
*location;
+ __u16 *location;
int signal = 0;
int signal = 0;
- location = get_check_address(regs);
+ location =
(__u16 *)
get_check_address(regs);
/*
* We got all needed information from the lowcore and can
/*
* We got all needed information from the lowcore and can