]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jun 2020 08:00:42 +0000 (10:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jun 2020 08:00:42 +0000 (10:00 +0200)
added patches:
drm-i915-whitelist-context-local-timestamp-in-the-gen9-cmdparser.patch
s390-fix-syscall_get_error-for-compat-processes.patch

queue-4.14/drm-i915-whitelist-context-local-timestamp-in-the-gen9-cmdparser.patch [new file with mode: 0644]
queue-4.14/s390-fix-syscall_get_error-for-compat-processes.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/drm-i915-whitelist-context-local-timestamp-in-the-gen9-cmdparser.patch b/queue-4.14/drm-i915-whitelist-context-local-timestamp-in-the-gen9-cmdparser.patch
new file mode 100644 (file)
index 0000000..0c160da
--- /dev/null
@@ -0,0 +1,46 @@
+From 273500ae71711c040d258a7b3f4b6f44c368fff2 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon, 1 Jun 2020 17:19:42 +0100
+Subject: drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
+
+From: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 273500ae71711c040d258a7b3f4b6f44c368fff2 upstream.
+
+Allow batch buffers to read their own _local_ cumulative HW runtime of
+their logical context.
+
+Fixes: 0f2f39758341 ("drm/i915: Add gen9 BCS cmdparsing")
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
+Cc: <stable@vger.kernel.org> # v5.4+
+Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20200601161942.30854-1-chris@chris-wilson.co.uk
+(cherry picked from commit f9496520df11de00fbafc3cbd693b9570d600ab3)
+Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/i915_cmd_parser.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_cmd_parser.c
++++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
+@@ -570,6 +570,9 @@ struct drm_i915_reg_descriptor {
+ #define REG32(_reg, ...) \
+       { .addr = (_reg), __VA_ARGS__ }
++#define REG32_IDX(_reg, idx) \
++      { .addr = _reg(idx) }
++
+ /*
+  * Convenience macro for adding 64-bit registers.
+  *
+@@ -667,6 +670,7 @@ static const struct drm_i915_reg_descrip
+       REG64_IDX(RING_TIMESTAMP, BSD_RING_BASE),
+       REG32(BCS_SWCTRL),
+       REG64_IDX(RING_TIMESTAMP, BLT_RING_BASE),
++      REG32_IDX(RING_CTX_TIMESTAMP, BLT_RING_BASE),
+       REG64_IDX(BCS_GPR, 0),
+       REG64_IDX(BCS_GPR, 1),
+       REG64_IDX(BCS_GPR, 2),
diff --git a/queue-4.14/s390-fix-syscall_get_error-for-compat-processes.patch b/queue-4.14/s390-fix-syscall_get_error-for-compat-processes.patch
new file mode 100644 (file)
index 0000000..aecdc39
--- /dev/null
@@ -0,0 +1,56 @@
+From b3583fca5fb654af2cfc1c08259abb9728272538 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Tue, 2 Jun 2020 21:00:51 +0300
+Subject: s390: fix syscall_get_error for compat processes
+
+From: Dmitry V. Levin <ldv@altlinux.org>
+
+commit b3583fca5fb654af2cfc1c08259abb9728272538 upstream.
+
+If both the tracer and the tracee are compat processes, and gprs[2]
+is assigned a value by __poke_user_compat, then the higher 32 bits
+of gprs[2] are cleared, IS_ERR_VALUE() always returns false, and
+syscall_get_error() always returns 0.
+
+Fix the implementation by sign-extending the value for compat processes
+the same way as x86 implementation does.
+
+The bug was exposed to user space by commit 201766a20e30f ("ptrace: add
+PTRACE_GET_SYSCALL_INFO request") and detected by strace test suite.
+
+This change fixes strace syscall tampering on s390.
+
+Link: https://lkml.kernel.org/r/20200602180051.GA2427@altlinux.org
+Fixes: 753c4dd6a2fa2 ("[S390] ptrace changes")
+Cc: Elvira Khabirova <lineprinter@altlinux.org>
+Cc: stable@vger.kernel.org # v2.6.28+
+Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
+Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/s390/include/asm/syscall.h |   12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+--- a/arch/s390/include/asm/syscall.h
++++ b/arch/s390/include/asm/syscall.h
+@@ -41,7 +41,17 @@ static inline void syscall_rollback(stru
+ static inline long syscall_get_error(struct task_struct *task,
+                                    struct pt_regs *regs)
+ {
+-      return IS_ERR_VALUE(regs->gprs[2]) ? regs->gprs[2] : 0;
++      unsigned long error = regs->gprs[2];
++#ifdef CONFIG_COMPAT
++      if (test_tsk_thread_flag(task, TIF_31BIT)) {
++              /*
++               * Sign-extend the value so (int)-EFOO becomes (long)-EFOO
++               * and will match correctly in comparisons.
++               */
++              error = (long)(int)error;
++      }
++#endif
++      return IS_ERR_VALUE(error) ? error : 0;
+ }
+ static inline long syscall_get_return_value(struct task_struct *task,
index ccab6857e2c4c237ba2f3a04363eab45680f8f7a..321a7f7b94e7a38407a1a1336f5d7378375bf09f 100644 (file)
@@ -1,3 +1,5 @@
+s390-fix-syscall_get_error-for-compat-processes.patch
+drm-i915-whitelist-context-local-timestamp-in-the-gen9-cmdparser.patch
 power-supply-bq24257_charger-replace-depends-on-regm.patch
 clk-sunxi-fix-incorrect-usage-of-round_down.patch
 i2c-piix4-detect-secondary-smbus-controller-on-amd-a.patch