patch-2.2.15 linux/arch/s390/kernel/traps.c
Next file: linux/arch/s390/tools/dasdfmt/dasdfmt.8
Previous file: linux/arch/s390/kernel/time.c
Back to the patch index
Back to the overall index
- Lines: 41
- Date:
Fri Apr 21 12:45:48 2000
- Orig file:
v2.2.14/arch/s390/kernel/traps.c
- Orig date:
Tue Jan 4 21:18:41 2000
diff -u --new-file --recursive --exclude-from ../../exclude v2.2.14/arch/s390/kernel/traps.c linux/arch/s390/kernel/traps.c
@@ -2,7 +2,7 @@
* arch/s390/kernel/traps.c
*
* S390 version
- * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
* Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com),
*
@@ -255,7 +255,7 @@
get_user(*((__u16 *) opcode), location);
else
*((__u16 *)opcode)=*((__u16 *)location);
- if(*((__u16 *)opcode)==BREAKPOINT_U16)
+ if(*((__u16 *)opcode)==S390_BREAKPOINT_U16)
{
if(do_debugger_trap(regs,SIGTRAP))
do_sig=1;
@@ -443,6 +443,8 @@
pgm_check_table[4] = &do_page_fault;
pgm_check_table[0x10] = &do_page_fault;
pgm_check_table[0x11] = &do_page_fault;
+ pgm_check_table[0x1C] = &privileged_op;
+
}
@@ -456,6 +458,13 @@
per_info->lowcore.words.access_id=S390_lowcore.per_access_id;
}
if(do_debugger_trap(regs,SIGTRAP))
+ {
+ /* I've seen this possibly a task structure being reused ? */
printk("Spurious per exception detected\n");
+ printk("switching off per tracing for this task.\n");
+ show_crashed_task_info();
+ /* Hopefully switching off per tracing will help us survive */
+ regs->psw.mask &= ~PSW_PER_MASK;
+ }
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)