diff options
author | Alexander Gordeev <agordeev@linux.ibm.com> | 2022-12-11 10:18:57 +0300 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2023-01-13 16:15:06 +0300 |
commit | 8e9205d2a58989aff46000ef47021633146ca493 (patch) | |
tree | 8e3bbfa1a53d106fec806f8c85412133b47a0f9d /arch/s390/mm/maccess.c | |
parent | e0e0a87b4b85ac3bbf76327fc030e6134b657068 (diff) | |
download | linux-8e9205d2a58989aff46000ef47021633146ca493.tar.xz |
s390/mm: allocate Real Memory Copy Area in decompressor
Move Real Memory Copy Area allocation to the decompressor.
As result, memcpy_real() and memcpy_real_iter() movers
become usable since the very moment the kernel starts.
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/mm/maccess.c')
-rw-r--r-- | arch/s390/mm/maccess.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c index a6314e259f97..7c66b3ad05e0 100644 --- a/arch/s390/mm/maccess.c +++ b/arch/s390/mm/maccess.c @@ -21,7 +21,7 @@ #include <asm/maccess.h> unsigned long __bootdata_preserved(__memcpy_real_area); -static __ro_after_init pte_t *memcpy_real_ptep; +pte_t *__bootdata_preserved(memcpy_real_ptep); static DEFINE_MUTEX(memcpy_real_mutex); static notrace long s390_kernel_write_odd(void *dst, const void *src, size_t size) @@ -79,13 +79,6 @@ notrace void *s390_kernel_write(void *dst, const void *src, size_t size) return dst; } -void __init memcpy_real_init(void) -{ - memcpy_real_ptep = vmem_get_alloc_pte(__memcpy_real_area, true); - if (!memcpy_real_ptep) - panic("Couldn't setup memcpy real area"); -} - size_t memcpy_real_iter(struct iov_iter *iter, unsigned long src, size_t count) { size_t len, copied, res = 0; |