From: Vasily Gorbik Date: Wed, 24 Jun 2020 15:39:14 +0000 (+0200) Subject: s390/maccess: add no DAT mode to kernel_write X-Git-Tag: v5.15~3434^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d6df52e9996dcc2062c3d9c9123288468bb95b52;p=platform%2Fkernel%2Flinux-starfive.git s390/maccess: add no DAT mode to kernel_write To be able to patch kernel code before paging is initialized do plain memcpy if DAT is off. This is required to enable early jump label initialization. Reviewed-by: Heiko Carstens Signed-off-by: Vasily Gorbik Signed-off-by: Heiko Carstens --- diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c index 22a0be6..1d17413 100644 --- a/arch/s390/mm/maccess.c +++ b/arch/s390/mm/maccess.c @@ -62,11 +62,15 @@ notrace void *s390_kernel_write(void *dst, const void *src, size_t size) long copied; spin_lock_irqsave(&s390_kernel_write_lock, flags); - while (size) { - copied = s390_kernel_write_odd(tmp, src, size); - tmp += copied; - src += copied; - size -= copied; + if (!(flags & PSW_MASK_DAT)) { + memcpy(dst, src, size); + } else { + while (size) { + copied = s390_kernel_write_odd(tmp, src, size); + tmp += copied; + src += copied; + size -= copied; + } } spin_unlock_irqrestore(&s390_kernel_write_lock, flags);