]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop some rmi4 patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Jul 2026 14:17:26 +0000 (16:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Jul 2026 14:17:26 +0000 (16:17 +0200)
queue-6.12/input-include-export.h-in-modules-using-export_symbol.patch [deleted file]
queue-6.12/input-rmi4-refactor-register-descriptor-parsing.patch [deleted file]
queue-6.12/series

diff --git a/queue-6.12/input-include-export.h-in-modules-using-export_symbol.patch b/queue-6.12/input-include-export.h-in-modules-using-export_symbol.patch
deleted file mode 100644 (file)
index 5392114..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-From stable+bounces-268622-greg=kroah.com@vger.kernel.org Thu Jun 25 18:26:27 2026
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 25 Jun 2026 12:25:07 -0400
-Subject: Input: include export.h in modules using EXPORT_SYMBOL*()
-To: stable@vger.kernel.org
-Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>, Sasha Levin <sashal@kernel.org>
-Message-ID: <20260625162508.2501015-1-sashal@kernel.org>
-
-From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-
-[ Upstream commit df595059d54383c42607b59f1f9ea74dade280fe ]
-
-A number of modules in the input subsystem use EXPORT_SYMBOL() and
-friends without explicitly including the corresponding header
-<linux/export.h>. While the build currently succeeds due to this header
-being pulled in transitively, this is not guaranteed to be the case in
-the future.
-
-Let's add the explicit include to make the dependencies clear and
-prevent future build breakage.
-
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Stable-dep-of: 0adb483fbf2d ("Input: rmi4 - refactor register descriptor parsing")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/input/ff-core.c                        |    2 +-
- drivers/input/ff-memless.c                     |    1 +
- drivers/input/gameport/gameport.c              |    1 +
- drivers/input/input-poller.c                   |    1 +
- drivers/input/input.c                          |    1 +
- drivers/input/joystick/iforce/iforce-main.c    |    1 +
- drivers/input/joystick/iforce/iforce-packets.c |    1 +
- drivers/input/misc/ad714x.c                    |    1 +
- drivers/input/misc/adxl34x.c                   |    1 +
- drivers/input/misc/cma3000_d0x.c               |    1 +
- drivers/input/rmi4/rmi_2d_sensor.c             |    1 +
- drivers/input/rmi4/rmi_bus.c                   |    1 +
- drivers/input/rmi4/rmi_driver.c                |    1 +
- drivers/input/serio/hil_mlc.c                  |    1 +
- drivers/input/serio/hp_sdc.c                   |    1 +
- drivers/input/serio/i8042.c                    |    1 +
- drivers/input/serio/libps2.c                   |    1 +
- drivers/input/serio/serio.c                    |    1 +
- drivers/input/sparse-keymap.c                  |    1 +
- drivers/input/touchscreen.c                    |    1 +
- drivers/input/touchscreen/ad7879.c             |    1 +
- drivers/input/touchscreen/cyttsp_core.c        |    1 +
- drivers/input/touchscreen/goodix_berlin_core.c |    1 +
- drivers/input/touchscreen/tsc200x-core.c       |    1 +
- drivers/input/touchscreen/wm9705.c             |    1 +
- drivers/input/touchscreen/wm9712.c             |    1 +
- drivers/input/touchscreen/wm9713.c             |    1 +
- drivers/input/touchscreen/wm97xx-core.c        |    1 +
- 28 files changed, 28 insertions(+), 1 deletion(-)
-
---- a/drivers/input/ff-core.c
-+++ b/drivers/input/ff-core.c
-@@ -8,9 +8,9 @@
- /* #define DEBUG */
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/limits.h>
--#include <linux/module.h>
- #include <linux/mutex.h>
- #include <linux/overflow.h>
- #include <linux/sched.h>
---- a/drivers/input/ff-memless.c
-+++ b/drivers/input/ff-memless.c
-@@ -10,6 +10,7 @@
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+#include <linux/export.h>
- #include <linux/slab.h>
- #include <linux/input.h>
- #include <linux/module.h>
---- a/drivers/input/gameport/gameport.c
-+++ b/drivers/input/gameport/gameport.c
-@@ -9,6 +9,7 @@
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+#include <linux/export.h>
- #include <linux/stddef.h>
- #include <linux/module.h>
- #include <linux/io.h>
---- a/drivers/input/input-poller.c
-+++ b/drivers/input/input-poller.c
-@@ -4,6 +4,7 @@
-  */
- #include <linux/device.h>
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/jiffies.h>
- #include <linux/mutex.h>
---- a/drivers/input/input.c
-+++ b/drivers/input/input.c
-@@ -8,6 +8,7 @@
- #define pr_fmt(fmt) KBUILD_BASENAME ": " fmt
-+#include <linux/export.h>
- #include <linux/init.h>
- #include <linux/types.h>
- #include <linux/idr.h>
---- a/drivers/input/joystick/iforce/iforce-main.c
-+++ b/drivers/input/joystick/iforce/iforce-main.c
-@@ -6,6 +6,7 @@
-  *  USB/RS232 I-Force joysticks and wheels.
-  */
-+#include <linux/export.h>
- #include <linux/unaligned.h>
- #include "iforce.h"
---- a/drivers/input/joystick/iforce/iforce-packets.c
-+++ b/drivers/input/joystick/iforce/iforce-packets.c
-@@ -6,6 +6,7 @@
-  *  USB/RS232 I-Force joysticks and wheels.
-  */
-+#include <linux/export.h>
- #include <linux/unaligned.h>
- #include "iforce.h"
---- a/drivers/input/misc/ad714x.c
-+++ b/drivers/input/misc/ad714x.c
-@@ -6,6 +6,7 @@
-  */
- #include <linux/device.h>
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/interrupt.h>
- #include <linux/slab.h>
---- a/drivers/input/misc/adxl34x.c
-+++ b/drivers/input/misc/adxl34x.c
-@@ -9,6 +9,7 @@
- #include <linux/device.h>
- #include <linux/delay.h>
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/interrupt.h>
- #include <linux/irq.h>
---- a/drivers/input/misc/cma3000_d0x.c
-+++ b/drivers/input/misc/cma3000_d0x.c
-@@ -6,6 +6,7 @@
-  * Author: Hemanth V <hemanthv@ti.com>
-  */
-+#include <linux/export.h>
- #include <linux/types.h>
- #include <linux/interrupt.h>
- #include <linux/delay.h>
---- a/drivers/input/rmi4/rmi_2d_sensor.c
-+++ b/drivers/input/rmi4/rmi_2d_sensor.c
-@@ -4,6 +4,7 @@
-  * Copyright (c) 2011 Unixphere
-  */
-+#include <linux/export.h>
- #include <linux/kernel.h>
- #include <linux/device.h>
- #include <linux/of.h>
---- a/drivers/input/rmi4/rmi_bus.c
-+++ b/drivers/input/rmi4/rmi_bus.c
-@@ -4,6 +4,7 @@
-  * Copyright (c) 2011 Unixphere
-  */
-+#include <linux/export.h>
- #include <linux/kernel.h>
- #include <linux/device.h>
- #include <linux/irq.h>
---- a/drivers/input/rmi4/rmi_driver.c
-+++ b/drivers/input/rmi4/rmi_driver.c
-@@ -21,6 +21,7 @@
- #include <linux/irqdomain.h>
- #include <uapi/linux/input.h>
- #include <linux/rmi.h>
-+#include <linux/export.h>
- #include "rmi_bus.h"
- #include "rmi_driver.h"
---- a/drivers/input/serio/hil_mlc.c
-+++ b/drivers/input/serio/hil_mlc.c
-@@ -54,6 +54,7 @@
- #include <linux/hil_mlc.h>
- #include <linux/errno.h>
-+#include <linux/export.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/init.h>
---- a/drivers/input/serio/hp_sdc.c
-+++ b/drivers/input/serio/hp_sdc.c
-@@ -63,6 +63,7 @@
- #include <linux/hp_sdc.h>
- #include <linux/errno.h>
-+#include <linux/export.h>
- #include <linux/init.h>
- #include <linux/module.h>
- #include <linux/ioport.h>
---- a/drivers/input/serio/i8042.c
-+++ b/drivers/input/serio/i8042.c
-@@ -10,6 +10,7 @@
- #include <linux/types.h>
- #include <linux/delay.h>
-+#include <linux/export.h>
- #include <linux/module.h>
- #include <linux/interrupt.h>
- #include <linux/ioport.h>
---- a/drivers/input/serio/libps2.c
-+++ b/drivers/input/serio/libps2.c
-@@ -8,6 +8,7 @@
- #include <linux/delay.h>
-+#include <linux/export.h>
- #include <linux/module.h>
- #include <linux/sched.h>
- #include <linux/interrupt.h>
---- a/drivers/input/serio/serio.c
-+++ b/drivers/input/serio/serio.c
-@@ -9,6 +9,7 @@
- #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+#include <linux/export.h>
- #include <linux/stddef.h>
- #include <linux/module.h>
- #include <linux/serio.h>
---- a/drivers/input/sparse-keymap.c
-+++ b/drivers/input/sparse-keymap.c
-@@ -10,6 +10,7 @@
-  * Copyright (C) 2005 Dmitry Torokhov <dtor@mail.ru>
-  */
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/input/sparse-keymap.h>
- #include <linux/module.h>
---- a/drivers/input/touchscreen.c
-+++ b/drivers/input/touchscreen.c
-@@ -6,6 +6,7 @@
-  *  Copyright (c) 2014 Sebastian Reichel <sre@kernel.org>
-  */
-+#include <linux/export.h>
- #include <linux/property.h>
- #include <linux/input.h>
- #include <linux/input/mt.h>
---- a/drivers/input/touchscreen/ad7879.c
-+++ b/drivers/input/touchscreen/ad7879.c
-@@ -22,6 +22,7 @@
- #include <linux/device.h>
- #include <linux/delay.h>
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/interrupt.h>
- #include <linux/irq.h>
---- a/drivers/input/touchscreen/cyttsp_core.c
-+++ b/drivers/input/touchscreen/cyttsp_core.c
-@@ -14,6 +14,7 @@
-  */
- #include <linux/delay.h>
-+#include <linux/export.h>
- #include <linux/input.h>
- #include <linux/input/mt.h>
- #include <linux/input/touchscreen.h>
---- a/drivers/input/touchscreen/goodix_berlin_core.c
-+++ b/drivers/input/touchscreen/goodix_berlin_core.c
-@@ -24,6 +24,7 @@
-  */
- #include <linux/bitfield.h>
-+#include <linux/export.h>
- #include <linux/gpio/consumer.h>
- #include <linux/input.h>
- #include <linux/input/mt.h>
---- a/drivers/input/touchscreen/tsc200x-core.c
-+++ b/drivers/input/touchscreen/tsc200x-core.c
-@@ -10,6 +10,7 @@
-  * based on TSC2301 driver by Klaus K. Pedersen <klaus.k.pedersen@nokia.com>
-  */
-+#include <linux/export.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/input.h>
---- a/drivers/input/touchscreen/wm9705.c
-+++ b/drivers/input/touchscreen/wm9705.c
-@@ -9,6 +9,7 @@
-  *                   Russell King <rmk@arm.linux.org.uk>
-  */
-+#include <linux/export.h>
- #include <linux/module.h>
- #include <linux/moduleparam.h>
- #include <linux/kernel.h>
---- a/drivers/input/touchscreen/wm9712.c
-+++ b/drivers/input/touchscreen/wm9712.c
-@@ -9,6 +9,7 @@
-  *                   Russell King <rmk@arm.linux.org.uk>
-  */
-+#include <linux/export.h>
- #include <linux/module.h>
- #include <linux/moduleparam.h>
- #include <linux/kernel.h>
---- a/drivers/input/touchscreen/wm9713.c
-+++ b/drivers/input/touchscreen/wm9713.c
-@@ -9,6 +9,7 @@
-  *                   Russell King <rmk@arm.linux.org.uk>
-  */
-+#include <linux/export.h>
- #include <linux/module.h>
- #include <linux/moduleparam.h>
- #include <linux/kernel.h>
---- a/drivers/input/touchscreen/wm97xx-core.c
-+++ b/drivers/input/touchscreen/wm97xx-core.c
-@@ -29,6 +29,7 @@
-  *       - Support for async sampling control for noisy LCDs.
-  */
-+#include <linux/export.h>
- #include <linux/module.h>
- #include <linux/moduleparam.h>
- #include <linux/kernel.h>
diff --git a/queue-6.12/input-rmi4-refactor-register-descriptor-parsing.patch b/queue-6.12/input-rmi4-refactor-register-descriptor-parsing.patch
deleted file mode 100644 (file)
index c64e9b6..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-From sashal@kernel.org Thu Jun 25 18:25:12 2026
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 25 Jun 2026 12:25:08 -0400
-Subject: Input: rmi4 - refactor register descriptor parsing
-To: stable@vger.kernel.org
-Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
-Message-ID: <20260625162508.2501015-2-sashal@kernel.org>
-
-From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-
-[ Upstream commit 0adb483fbf2dc43c875cd7550a58b41e92efc52d ]
-
-Factor out parsing a register descriptor item from
-rmi_read_register_desc() and ensure there are no out-of-bounds accesses.
-
-Use get_unaligned_le16() and get_unaligned_le32() for reading multi-byte
-values.
-
-Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Fixes: 2b6a321da9a2 ("Input: synaptics-rmi4 - add support for Synaptics RMI4 devices")
-Cc: stable@vger.kernel.org
-Assisted-by: Gemini:gemini-3.1-pro
-Link: https://patch.msgid.link/20260505045952.1570713-2-dmitry.torokhov@gmail.com
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/input/rmi4/rmi_driver.c |  124 ++++++++++++++++++++++++----------------
- 1 file changed, 76 insertions(+), 48 deletions(-)
-
---- a/drivers/input/rmi4/rmi_driver.c
-+++ b/drivers/input/rmi4/rmi_driver.c
-@@ -22,6 +22,7 @@
- #include <uapi/linux/input.h>
- #include <linux/rmi.h>
- #include <linux/export.h>
-+#include <linux/unaligned.h>
- #include "rmi_bus.h"
- #include "rmi_driver.h"
-@@ -558,30 +559,74 @@ int rmi_scan_pdt(struct rmi_device *rmi_
-       return retval < 0 ? retval : 0;
- }
-+static int rmi_parse_register_desc_item(struct rmi_register_desc_item *item,
-+                                      const u8 *buf, size_t size)
-+{
-+      unsigned int offset = 0;
-+      unsigned int map_offset = 0;
-+      int b;
-+
-+      if (offset >= size)
-+              return -EIO;
-+
-+      item->reg_size = buf[offset++];
-+      if (item->reg_size == 0) {
-+              if (size - offset < 2)
-+                      return -EIO;
-+              item->reg_size = get_unaligned_le16(&buf[offset]);
-+              offset += 2;
-+      }
-+
-+      if (item->reg_size == 0) {
-+              if (size - offset < 4)
-+                      return -EIO;
-+              item->reg_size = get_unaligned_le32(&buf[offset]);
-+              offset += 4;
-+      }
-+
-+      do {
-+              if (offset >= size)
-+                      return -EIO;
-+
-+              for (b = 0; b < 7; b++) {
-+                      if (buf[offset] & BIT(b)) {
-+                              if (map_offset >= RMI_REG_DESC_SUBPACKET_BITS)
-+                                      return -EIO;
-+                              __set_bit(map_offset, item->subpacket_map);
-+                      }
-+                      ++map_offset;
-+              }
-+      } while (buf[offset++] & BIT(7));
-+
-+      item->num_subpackets = bitmap_weight(item->subpacket_map,
-+                                           RMI_REG_DESC_SUBPACKET_BITS);
-+
-+      return offset;
-+}
-+
- int rmi_read_register_desc(struct rmi_device *d, u16 addr,
--                              struct rmi_register_descriptor *rdesc)
-+                         struct rmi_register_descriptor *rdesc)
- {
-       int ret;
-       u8 size_presence_reg;
-       u8 buf[35];
--      int presense_offset = 1;
--      u8 *struct_buf;
--      int reg;
--      int offset = 0;
--      int map_offset = 0;
-+      unsigned int presence_offset;
-+      unsigned int map_offset;
-+      unsigned int offset;
-+      unsigned int reg;
-       int i;
-       int b;
-       /*
-        * The first register of the register descriptor is the size of
--       * the register descriptor's presense register.
-+       * the register descriptor's presence register.
-        */
-       ret = rmi_read(d, addr, &size_presence_reg);
-       if (ret)
-               return ret;
-       ++addr;
--      if (size_presence_reg < 0 || size_presence_reg > 35)
-+      if (size_presence_reg < 1 || size_presence_reg > 35)
-               return -EIO;
-       memset(buf, 0, sizeof(buf));
-@@ -597,16 +642,23 @@ int rmi_read_register_desc(struct rmi_de
-       ++addr;
-       if (buf[0] == 0) {
--              presense_offset = 3;
--              rdesc->struct_size = buf[1] | (buf[2] << 8);
-+              if (size_presence_reg < 3)
-+                      return -EIO;
-+              presence_offset = 3;
-+              rdesc->struct_size = get_unaligned_le16(&buf[1]);
-       } else {
-+              presence_offset = 1;
-               rdesc->struct_size = buf[0];
-       }
--      for (i = presense_offset; i < size_presence_reg; i++) {
-+      map_offset = 0;
-+      for (i = presence_offset; i < size_presence_reg; i++) {
-               for (b = 0; b < 8; b++) {
--                      if (buf[i] & (0x1 << b))
-+                      if (buf[i] & BIT(b)) {
-+                              if (map_offset >= RMI_REG_DESC_PRESENSE_BITS)
-+                                      return -EIO;
-                               bitmap_set(rdesc->presense_map, map_offset, 1);
-+                      }
-                       ++map_offset;
-               }
-       }
-@@ -626,7 +678,7 @@ int rmi_read_register_desc(struct rmi_de
-        * I'm not using devm_kzalloc here since it will not be retained
-        * after exiting this function
-        */
--      struct_buf = kzalloc(rdesc->struct_size, GFP_KERNEL);
-+      u8 *struct_buf __free(kfree) = kzalloc(rdesc->struct_size, GFP_KERNEL);
-       if (!struct_buf)
-               return -ENOMEM;
-@@ -638,56 +690,32 @@ int rmi_read_register_desc(struct rmi_de
-        */
-       ret = rmi_read_block(d, addr, struct_buf, rdesc->struct_size);
-       if (ret)
--              goto free_struct_buff;
-+              return ret;
-       reg = find_first_bit(rdesc->presense_map, RMI_REG_DESC_PRESENSE_BITS);
-+      offset = 0;
-       for (i = 0; i < rdesc->num_registers; i++) {
-               struct rmi_register_desc_item *item = &rdesc->registers[i];
--              int reg_size = struct_buf[offset];
-+              int item_size;
--              ++offset;
--              if (reg_size == 0) {
--                      reg_size = struct_buf[offset] |
--                                      (struct_buf[offset + 1] << 8);
--                      offset += 2;
--              }
--
--              if (reg_size == 0) {
--                      reg_size = struct_buf[offset] |
--                                      (struct_buf[offset + 1] << 8) |
--                                      (struct_buf[offset + 2] << 16) |
--                                      (struct_buf[offset + 3] << 24);
--                      offset += 4;
--              }
-+              item_size = rmi_parse_register_desc_item(item,
-+                                                       &struct_buf[offset],
-+                                                       rdesc->struct_size - offset);
-+              if (item_size < 0)
-+                      return item_size;
-               item->reg = reg;
--              item->reg_size = reg_size;
--
--              map_offset = 0;
--
--              do {
--                      for (b = 0; b < 7; b++) {
--                              if (struct_buf[offset] & (0x1 << b))
--                                      bitmap_set(item->subpacket_map,
--                                              map_offset, 1);
--                              ++map_offset;
--                      }
--              } while (struct_buf[offset++] & 0x80);
--
--              item->num_subpackets = bitmap_weight(item->subpacket_map,
--                                              RMI_REG_DESC_SUBPACKET_BITS);
-+              offset += item_size;
-               rmi_dbg(RMI_DEBUG_CORE, &d->dev,
-                       "%s: reg: %d reg size: %ld subpackets: %d\n", __func__,
-                       item->reg, item->reg_size, item->num_subpackets);
-               reg = find_next_bit(rdesc->presense_map,
--                              RMI_REG_DESC_PRESENSE_BITS, reg + 1);
-+                                  RMI_REG_DESC_PRESENSE_BITS, reg + 1);
-       }
--free_struct_buff:
--      kfree(struct_buf);
--      return ret;
-+      return 0;
- }
- const struct rmi_register_desc_item *rmi_get_register_desc_item(
index 583b2458ae046bba43222499f076a3723c55a392..1c63f47983f22b8f2e5903552a2b8e0953fbae2a 100644 (file)
@@ -197,5 +197,3 @@ documentation-ioctl-number-extend-include-file-column-width.patch
 crypto-qat-replace-kzalloc-copy_from_user-with-memdup_user.patch
 crypto-qat-return-pointer-directly-in-adf_ctl_alloc_resources.patch
 crypto-qat-remove-unused-character-device-and-ioctls.patch
-input-include-export.h-in-modules-using-export_symbol.patch
-input-rmi4-refactor-register-descriptor-parsing.patch