diff options
author | Alexander Gordeev <agordeev@linux.ibm.com> | 2021-02-08 16:01:17 +0100 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2021-10-26 15:21:28 +0200 |
commit | ada1da31ce34248bc97ca8f801f2cf6efa378a81 (patch) | |
tree | dcde2e61a606ebe5ce9b84d40bdd0ecf2c5be6f8 /arch/s390 | |
parent | dd9089b65407756e3490ab2737373f957a650375 (diff) |
s390/sclp: sort out physical vs virtual pointers usage
Provide physical addresses whenever the hardware interface
expects it or a 32-bit value used for tracking.
Variable sclp_early_sccb gets initialized in the decompressor
and points to an address in physcal memory. Yet, it is used
as virtual memory pointer and therefore should be converted.
Note, the other two __bootdata variables sclp_info_sccb and
sclp_info_sccb_valid contain plain data, but no pointers and
do need any special care.
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/include/asm/sclp.h | 1 | ||||
-rw-r--r-- | arch/s390/kernel/early.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index e3ae937bef1c..c68ea35de498 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h @@ -117,6 +117,7 @@ struct zpci_report_error_header { extern char *sclp_early_sccb; +void sclp_early_adjust_va(void); void sclp_early_set_buffer(void *sccb); int sclp_early_read_info(void); int sclp_early_read_storage_info(void); diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index 9857cb046726..ba3ace5ac73c 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c @@ -296,6 +296,7 @@ static void __init check_image_bootable(void) void __init startup_init(void) { + sclp_early_adjust_va(); reset_tod_clock(); check_image_bootable(); time_early_init(); |