| From 80237836f83832ad3a1dfe6a5b4998d461b81d73 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 29 Apr 2020 10:24:47 -0500 |
| Subject: s390: Change s390_kernel_write() return type to match memcpy() |
| |
| From: Josh Poimboeuf <jpoimboe@redhat.com> |
| |
| [ Upstream commit cb2cceaefb4c4dc28fc27ff1f1b2d258bfc10353 ] |
| |
| s390_kernel_write()'s function type is almost identical to memcpy(). |
| Change its return type to "void *" so they can be used interchangeably. |
| |
| Cc: linux-s390@vger.kernel.org |
| Cc: heiko.carstens@de.ibm.com |
| Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> |
| Acked-by: Joe Lawrence <joe.lawrence@redhat.com> |
| Acked-by: Miroslav Benes <mbenes@suse.cz> |
| Acked-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> # s390 |
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/s390/include/asm/uaccess.h | 2 +- |
| arch/s390/mm/maccess.c | 9 ++++++--- |
| 2 files changed, 7 insertions(+), 4 deletions(-) |
| |
| diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h |
| index a470f1fa9f2af..324438889fe16 100644 |
| --- a/arch/s390/include/asm/uaccess.h |
| +++ b/arch/s390/include/asm/uaccess.h |
| @@ -276,6 +276,6 @@ static inline unsigned long __must_check clear_user(void __user *to, unsigned lo |
| } |
| |
| int copy_to_user_real(void __user *dest, void *src, unsigned long count); |
| -void s390_kernel_write(void *dst, const void *src, size_t size); |
| +void *s390_kernel_write(void *dst, const void *src, size_t size); |
| |
| #endif /* __S390_UACCESS_H */ |
| diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c |
| index de7ca4b6718f1..22a0be655f27a 100644 |
| --- a/arch/s390/mm/maccess.c |
| +++ b/arch/s390/mm/maccess.c |
| @@ -55,19 +55,22 @@ static notrace long s390_kernel_write_odd(void *dst, const void *src, size_t siz |
| */ |
| static DEFINE_SPINLOCK(s390_kernel_write_lock); |
| |
| -void notrace s390_kernel_write(void *dst, const void *src, size_t size) |
| +notrace void *s390_kernel_write(void *dst, const void *src, size_t size) |
| { |
| + void *tmp = dst; |
| unsigned long flags; |
| long copied; |
| |
| spin_lock_irqsave(&s390_kernel_write_lock, flags); |
| while (size) { |
| - copied = s390_kernel_write_odd(dst, src, size); |
| - dst += copied; |
| + copied = s390_kernel_write_odd(tmp, src, size); |
| + tmp += copied; |
| src += copied; |
| size -= copied; |
| } |
| spin_unlock_irqrestore(&s390_kernel_write_lock, flags); |
| + |
| + return dst; |
| } |
| |
| static int __no_sanitize_address __memcpy_real(void *dest, void *src, size_t count) |
| -- |
| 2.25.1 |
| |