s390/unwind: add machine check handler stack
Fixes: b61b159512
("s390: add stack for machine check handler")
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
parent
7a2f91441b
commit
08edb9683e
|
@ -12,6 +12,7 @@ enum stack_type {
|
||||||
STACK_TYPE_IRQ,
|
STACK_TYPE_IRQ,
|
||||||
STACK_TYPE_NODAT,
|
STACK_TYPE_NODAT,
|
||||||
STACK_TYPE_RESTART,
|
STACK_TYPE_RESTART,
|
||||||
|
STACK_TYPE_MCCK,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct stack_info {
|
struct stack_info {
|
||||||
|
|
|
@ -79,6 +79,15 @@ static bool in_nodat_stack(unsigned long sp, struct stack_info *info)
|
||||||
return in_stack(sp, info, STACK_TYPE_NODAT, top - THREAD_SIZE, top);
|
return in_stack(sp, info, STACK_TYPE_NODAT, top - THREAD_SIZE, top);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool in_mcck_stack(unsigned long sp, struct stack_info *info)
|
||||||
|
{
|
||||||
|
unsigned long frame_size, top;
|
||||||
|
|
||||||
|
frame_size = STACK_FRAME_OVERHEAD + sizeof(struct pt_regs);
|
||||||
|
top = S390_lowcore.mcck_stack + frame_size;
|
||||||
|
return in_stack(sp, info, STACK_TYPE_MCCK, top - THREAD_SIZE, top);
|
||||||
|
}
|
||||||
|
|
||||||
static bool in_restart_stack(unsigned long sp, struct stack_info *info)
|
static bool in_restart_stack(unsigned long sp, struct stack_info *info)
|
||||||
{
|
{
|
||||||
unsigned long frame_size, top;
|
unsigned long frame_size, top;
|
||||||
|
@ -108,7 +117,8 @@ int get_stack_info(unsigned long sp, struct task_struct *task,
|
||||||
/* Check per-cpu stacks */
|
/* Check per-cpu stacks */
|
||||||
if (!in_irq_stack(sp, info) &&
|
if (!in_irq_stack(sp, info) &&
|
||||||
!in_nodat_stack(sp, info) &&
|
!in_nodat_stack(sp, info) &&
|
||||||
!in_restart_stack(sp, info))
|
!in_restart_stack(sp, info) &&
|
||||||
|
!in_mcck_stack(sp, info))
|
||||||
goto unknown;
|
goto unknown;
|
||||||
|
|
||||||
recursion_check:
|
recursion_check:
|
||||||
|
|
Loading…
Reference in New Issue