diff options
author | Nico Boehr <nrb@linux.ibm.com> | 2022-10-20 16:31:56 +0200 |
---|---|---|
committer | Janosch Frank <frankja@linux.ibm.com> | 2022-10-26 14:27:41 +0200 |
commit | 6b33e68ab30949f9657e2acc59766977ae63e1cc (patch) | |
tree | 61e7050f3d62cf8f8f2e5049fb8cfcbe32fa6908 /arch/s390/kernel/asm-offsets.c | |
parent | 079f0c21ef6d79f80b19b64f5e0218d5a328c4cd (diff) | |
download | lwn-6b33e68ab30949f9657e2acc59766977ae63e1cc.tar.gz lwn-6b33e68ab30949f9657e2acc59766977ae63e1cc.zip |
s390/entry: sort out physical vs virtual pointers usage in sie64a
Fix virtual vs physical address confusion (which currently are the
same).
sie_block is accessed in entry.S and passed it to hardware, which is why
both its physical and virtual address are needed. To avoid every caller
having to do the virtual-physical conversion, add a new function sie64a()
which converts the virtual address to physical.
Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Link: https://lore.kernel.org/r/20221020143159.294605-3-nrb@linux.ibm.com
Message-Id: <20221020143159.294605-3-nrb@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel/asm-offsets.c')
-rw-r--r-- | arch/s390/kernel/asm-offsets.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index d8ce965c0a97..3f8e760298c2 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c @@ -62,6 +62,7 @@ int main(void) OFFSET(__SF_SIE_SAVEAREA, stack_frame, sie_savearea); OFFSET(__SF_SIE_REASON, stack_frame, sie_reason); OFFSET(__SF_SIE_FLAGS, stack_frame, sie_flags); + OFFSET(__SF_SIE_CONTROL_PHYS, stack_frame, sie_control_block_phys); DEFINE(STACK_FRAME_OVERHEAD, sizeof(struct stack_frame)); BLANK(); /* idle data offsets */ |