[PATCH v2 RESEND 0/6] USB: add usb_make_subpath() to replace strlcat() in input drivers

From: Shihuang Liu

Date: Thu Oct 22 2026 - 03:10:20 EST


Several USB input drivers build their physical device paths by calling
usb_make_path() and then appending "/input0" or "/input1" with strlcat().

In preparation for removing the deprecated strlcat() API [1], introduce
usb_make_subpath() and convert these callers to use it.

Patch 1 adds the helper in include/linux/usb.h. Patches 2-6 convert the
joystick, misc, mouse, tablet and touchscreen drivers, respectively.

Link: https://github.com/KSPP/linux/issues/370 [1]
Signed-off-by: Shihuang Liu <shlomojune6@xxxxxxxxx>

---
This is a resend of v2 to include the USB maintainers and mailing list
that I missed in the original posting.

Original v2:
https://lore.kernel.org/r/20261021123146.17202-1-shlomojune6@xxxxxxxxx/

No changes to the patches since v2

Changes in v2:
- Add usb_make_subpath() as the first patch in the series.
- Use the helper instead of open-coding strnlen() and strscpy() in
each input driver.
- Link to v1: https://lore.kernel.org/all/20261016170411.51025-1-shlomojune6@xxxxxxxxx/

---

Shihuang Liu (6):
USB: add usb_make_subpath() for formatted device subpaths
Input: joystick - use usb_make_subpath()
Input: misc - use usb_make_subpath()
Input: mouse - use usb_make_subpath()
Input: tablet - use usb_make_subpath()
Input: touchscreen - use usb_make_subpath()

drivers/input/joystick/pxrc.c | 3 +--
drivers/input/joystick/xpad.c | 3 +--
drivers/input/misc/ati_remote2.c | 3 +--
drivers/input/misc/cm109.c | 3 +--
drivers/input/misc/ims-pcu.c | 6 ++---
drivers/input/misc/keyspan_remote.c | 3 +--
drivers/input/misc/powermate.c | 3 +--
drivers/input/misc/yealink.c | 3 +--
drivers/input/mouse/appletouch.c | 3 +--
drivers/input/mouse/bcm5974.c | 3 +--
drivers/input/mouse/synaptics_usb.c | 3 +--
drivers/input/tablet/acecad.c | 3 +--
drivers/input/tablet/aiptek.c | 6 ++---
drivers/input/tablet/hanwang.c | 3 +--
drivers/input/tablet/kbtab.c | 3 +--
drivers/input/tablet/pegasus_notetaker.c | 3 +--
drivers/input/touchscreen/sur40.c | 3 +--
drivers/input/touchscreen/usbtouchscreen.c | 3 +--
include/linux/usb.h | 29 ++++++++++++++++++++++
19 files changed, 49 insertions(+), 40 deletions(-)

--
2.43.0