mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 07:04:48 +01:00
s390/traps: Copy monitor code to pt_regs
In case of a monitor call program check the CPU stores the monitor code to lowcore. Let the program check handler copy it to the pt_regs structure so it can be used by the monitor call exception handler. Instead of increasing the pt_regs size add a union which contains both orig_gpr2 and monitor_code, since orig_gpr2 is not used in case of a program check. Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
8cbfd13601
commit
ee44f4e7eb
2 changed files with 5 additions and 1 deletions
|
|
@ -120,7 +120,10 @@ struct pt_regs {
|
|||
unsigned long gprs[NUM_GPRS];
|
||||
};
|
||||
};
|
||||
unsigned long orig_gpr2;
|
||||
union {
|
||||
unsigned long orig_gpr2;
|
||||
unsigned long monitor_code;
|
||||
};
|
||||
union {
|
||||
struct {
|
||||
unsigned int int_code;
|
||||
|
|
|
|||
|
|
@ -298,6 +298,7 @@ void noinstr __do_pgm_check(struct pt_regs *regs)
|
|||
teid.val = lc->trans_exc_code;
|
||||
regs->int_code = lc->pgm_int_code;
|
||||
regs->int_parm_long = teid.val;
|
||||
regs->monitor_code = lc->monitor_code;
|
||||
/*
|
||||
* In case of a guest fault, short-circuit the fault handler and return.
|
||||
* This way the sie64a() function will return 0; fault address and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue