]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.7
authorSasha Levin <sashal@kernel.org>
Wed, 15 Jul 2020 14:32:41 +0000 (10:32 -0400)
committerSasha Levin <sashal@kernel.org>
Wed, 15 Jul 2020 14:32:41 +0000 (10:32 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.7/s390-change-s390_kernel_write-return-type-to-match-m.patch [new file with mode: 0644]
queue-5.7/s390-maccess-add-no-dat-mode-to-kernel_write.patch [new file with mode: 0644]
queue-5.7/series

diff --git a/queue-5.7/s390-change-s390_kernel_write-return-type-to-match-m.patch b/queue-5.7/s390-change-s390_kernel_write-return-type-to-match-m.patch
new file mode 100644 (file)
index 0000000..c8651d8
--- /dev/null
@@ -0,0 +1,70 @@
+From a15a64a20213d8e60a85453e5ab891b7bf19d012 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
+
diff --git a/queue-5.7/s390-maccess-add-no-dat-mode-to-kernel_write.patch b/queue-5.7/s390-maccess-add-no-dat-mode-to-kernel_write.patch
new file mode 100644 (file)
index 0000000..960f19e
--- /dev/null
@@ -0,0 +1,49 @@
+From 9644120dd9b51ce82b384dcf2236c2a2324fddee Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 24 Jun 2020 17:39:14 +0200
+Subject: s390/maccess: add no DAT mode to kernel_write
+
+From: Vasily Gorbik <gor@linux.ibm.com>
+
+[ Upstream commit d6df52e9996dcc2062c3d9c9123288468bb95b52 ]
+
+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 <heiko.carstens@de.ibm.com>
+Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
+Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/s390/mm/maccess.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c
+index 22a0be655f27a..1d17413b319a4 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);
+-- 
+2.25.1
+
index 4901042ea30623f5fa50f876c72c594c4abdc249..bf9fdd30e0de48f53c8ecbb263989b7f86022603 100644 (file)
@@ -163,3 +163,5 @@ perf-scripts-python-exported-sql-viewer.py-fix-zero-id-in-call-graph-find-result
 perf-scripts-python-exported-sql-viewer.py-fix-zero-id-in-call-tree-find-result.patch
 perf-scripts-python-exported-sql-viewer.py-fix-unexpanded-find-result.patch
 perf-scripts-python-exported-sql-viewer.py-fix-time-chart-call-tree.patch
+s390-change-s390_kernel_write-return-type-to-match-m.patch
+s390-maccess-add-no-dat-mode-to-kernel_write.patch