]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Feb 2025 08:45:52 +0000 (09:45 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Feb 2025 08:45:52 +0000 (09:45 +0100)
added patches:
ptp-properly-handle-compat-ioctls.patch

queue-6.1/ptp-properly-handle-compat-ioctls.patch [new file with mode: 0644]
queue-6.1/series

diff --git a/queue-6.1/ptp-properly-handle-compat-ioctls.patch b/queue-6.1/ptp-properly-handle-compat-ioctls.patch
new file mode 100644 (file)
index 0000000..73cb12b
--- /dev/null
@@ -0,0 +1,52 @@
+From 8c29a76b76bb089095af8d29efec226a005274ca Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 25 Jan 2025 10:28:38 +0100
+Subject: ptp: Properly handle compat ioctls
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Thomas Weißschuh <linux@weissschuh.net>
+
+[ Upstream commit 19ae40f572a9ce1ade9954990af709a03fd37010 ]
+
+Pointer arguments passed to ioctls need to pass through compat_ptr() to
+work correctly on s390; as explained in Documentation/driver-api/ioctl.rst.
+Detect compat mode at runtime and call compat_ptr() for those commands
+which do take pointer arguments.
+
+Suggested-by: Arnd Bergmann <arnd@arndb.de>
+Link: https://lore.kernel.org/lkml/1ba5d3a4-7931-455b-a3ce-85a968a7cb10@app.fastmail.com/
+Fixes: d94ba80ebbea ("ptp: Added a brand new class driver for ptp clocks.")
+Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
+Reviewed-by: Cyrill Gorcunov <gorcunov@gmail.com>
+Reviewed-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: Richard Cochran <richardcochran@gmail.com>
+Link: https://patch.msgid.link/20250125-posix-clock-compat_ioctl-v2-1-11c865c500eb@weissschuh.net
+Signed-off-by: Paolo Abeni <pabeni@redhat.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/ptp/ptp_chardev.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/ptp/ptp_chardev.c
++++ b/drivers/ptp/ptp_chardev.c
+@@ -4,6 +4,7 @@
+  *
+  * Copyright (C) 2010 OMICRON electronics GmbH
+  */
++#include <linux/compat.h>
+ #include <linux/module.h>
+ #include <linux/posix-clock.h>
+ #include <linux/poll.h>
+@@ -124,6 +125,9 @@ long ptp_ioctl(struct posix_clock *pc, u
+       struct timespec64 ts;
+       int enable, err = 0;
++      if (in_compat_syscall() && cmd != PTP_ENABLE_PPS && cmd != PTP_ENABLE_PPS2)
++              arg = (unsigned long)compat_ptr(arg);
++
+       switch (cmd) {
+       case PTP_CLOCK_GETCAPS:
index e65b9f269ba20f5d42fccd20b3b19f735d135677..82b24c0e813d0d42fa11d1e0e518494072a5bb1b 100644 (file)
@@ -277,3 +277,4 @@ usb-gadget-f_tcm-don-t-free-command-immediately.patch
 staging-media-max96712-fix-kernel-oops-when-removing-module.patch
 media-imx-jpeg-fix-potential-error-pointer-dereference-in-detach_pm.patch
 btrfs-output-the-reason-for-open_ctree-failure.patch
+ptp-properly-handle-compat-ioctls.patch