diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2022-05-30 14:20:50 +0200 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2022-06-01 12:03:17 +0200 |
commit | e0ffcf3fe18e0310221461c08969edec2cc7628c (patch) | |
tree | 12cd882c098517e8906f997fbfd1806504422ddc /arch/s390/kernel | |
parent | f037acb41dc9fc0f00521685b3250226d6f9b437 (diff) | |
download | linux-e0ffcf3fe18e0310221461c08969edec2cc7628c.tar.gz linux-e0ffcf3fe18e0310221461c08969edec2cc7628c.tar.bz2 linux-e0ffcf3fe18e0310221461c08969edec2cc7628c.zip |
s390/stack: add union to reflect kvm stack slot usages
Add a union which describes how the empty stack slots are being used
by kvm and perf. This should help to avoid another bug like the one
which was fixed with commit c9bfb460c3e4 ("s390/perf: obtain sie_block
from the right address").
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Tested-by: Nico Boehr <nrb@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/asm-offsets.c | 8 | ||||
-rw-r--r-- | arch/s390/kernel/perf_event.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index 0e10d7ff4203..d8ce965c0a97 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c @@ -58,10 +58,10 @@ int main(void) OFFSET(__SF_BACKCHAIN, stack_frame, back_chain); OFFSET(__SF_GPRS, stack_frame, gprs); OFFSET(__SF_EMPTY, stack_frame, empty[0]); - OFFSET(__SF_SIE_CONTROL, stack_frame, empty[1]); - OFFSET(__SF_SIE_SAVEAREA, stack_frame, empty[2]); - OFFSET(__SF_SIE_REASON, stack_frame, empty[3]); - OFFSET(__SF_SIE_FLAGS, stack_frame, empty[4]); + OFFSET(__SF_SIE_CONTROL, stack_frame, sie_control_block); + OFFSET(__SF_SIE_SAVEAREA, stack_frame, sie_savearea); + OFFSET(__SF_SIE_REASON, stack_frame, sie_reason); + OFFSET(__SF_SIE_FLAGS, stack_frame, sie_flags); DEFINE(STACK_FRAME_OVERHEAD, sizeof(struct stack_frame)); BLANK(); /* idle data offsets */ diff --git a/arch/s390/kernel/perf_event.c b/arch/s390/kernel/perf_event.c index e259ff1f5ad3..c27321cb0969 100644 --- a/arch/s390/kernel/perf_event.c +++ b/arch/s390/kernel/perf_event.c @@ -30,7 +30,7 @@ static struct kvm_s390_sie_block *sie_block(struct pt_regs *regs) if (!stack) return NULL; - return (struct kvm_s390_sie_block *)stack->empty[1]; + return (struct kvm_s390_sie_block *)stack->sie_control_block; } static bool is_in_guest(struct pt_regs *regs) |