* [PATCH AUTOSEL 5.10 2/6] um: vector: Reduce stack usage in vector_eth_configure()
2025-06-30 21:01 [PATCH AUTOSEL 5.10 1/6] atm: idt77252: Add missing `dma_map_error()` Sasha Levin
@ 2025-06-30 21:01 ` Sasha Levin
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 3/6] net: usb: qmi_wwan: add SIMCom 8230C composition Sasha Levin
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2025-06-30 21:01 UTC (permalink / raw)
To: patches, stable
Cc: Tiwei Bie, kernel test robot, Johannes Berg, Sasha Levin, nathan,
richard, anton.ivanov, guoweikang.kernel, geert, tglx, bpf, llvm
From: Tiwei Bie <tiwei.btw@antgroup.com>
[ Upstream commit 2d65fc13be85c336c56af7077f08ccd3a3a15a4a ]
When compiling with clang (19.1.7), initializing *vp using a compound
literal may result in excessive stack usage. Fix it by initializing the
required fields of *vp individually.
Without this patch:
$ objdump -d arch/um/drivers/vector_kern.o | ./scripts/checkstack.pl x86_64 0
...
0x0000000000000540 vector_eth_configure [vector_kern.o]:1472
...
With this patch:
$ objdump -d arch/um/drivers/vector_kern.o | ./scripts/checkstack.pl x86_64 0
...
0x0000000000000540 vector_eth_configure [vector_kern.o]:208
...
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202506221017.WtB7Usua-lkp@intel.com/
Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com>
Link: https://patch.msgid.link/20250623110829.314864-1-tiwei.btw@antgroup.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees for the
following reasons:
1. **Fixes a real bug**: The commit addresses excessive stack usage
(1472 bytes) that can lead to stack overflow, especially problematic
on systems with limited kernel stack space. This is a legitimate bug
that affects system stability.
2. **Compiler-specific issue with real impact**: While triggered by
clang 19.1.7's handling of compound literals, the resulting stack
usage of 1472 bytes is genuinely excessive and dangerous regardless
of the compiler quirk that exposed it.
3. **Simple and safe fix**: The change is purely mechanical - converting
from compound literal initialization to field-by-field
initialization:
```c
// From:
*vp = ((struct vector_private) { .field = value, ... });
// To:
vp->field = value;
```
4. **Minimal risk**: The fix doesn't change any logic or functionality.
It only changes how the structure is initialized, making it extremely
unlikely to introduce regressions.
5. **Precedent from similar commits**: Looking at the historical commits
marked "YES" for backporting:
- Similar Commit #1: Reduced stack frame in qed driver using
`noinline_for_stack`
- Similar Commit #4: Reduced stack usage in ethtool with clang using
`noinline_for_stack`
Both addressed the same class of problem (excessive stack usage with
clang) and were considered suitable for stable.
6. **Measurable improvement**: The stack usage reduction from 1472 to
208 bytes is dramatic and well-documented by the kernel test robot,
providing clear evidence of the fix's effectiveness.
The commit meets the stable kernel criteria of fixing an important bug
with minimal risk and a contained change. While it doesn't explicitly
include a "Cc: stable" tag, the nature of the fix (preventing potential
stack overflow) makes it a good candidate for stable backporting.
arch/um/drivers/vector_kern.c | 42 +++++++++++------------------------
1 file changed, 13 insertions(+), 29 deletions(-)
diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
index da05bfdaeb1db..a37007e42265a 100644
--- a/arch/um/drivers/vector_kern.c
+++ b/arch/um/drivers/vector_kern.c
@@ -1600,35 +1600,19 @@ static void vector_eth_configure(
device->dev = dev;
- *vp = ((struct vector_private)
- {
- .list = LIST_HEAD_INIT(vp->list),
- .dev = dev,
- .unit = n,
- .options = get_transport_options(def),
- .rx_irq = 0,
- .tx_irq = 0,
- .parsed = def,
- .max_packet = get_mtu(def) + ETH_HEADER_OTHER,
- /* TODO - we need to calculate headroom so that ip header
- * is 16 byte aligned all the time
- */
- .headroom = get_headroom(def),
- .form_header = NULL,
- .verify_header = NULL,
- .header_rxbuffer = NULL,
- .header_txbuffer = NULL,
- .header_size = 0,
- .rx_header_size = 0,
- .rexmit_scheduled = false,
- .opened = false,
- .transport_data = NULL,
- .in_write_poll = false,
- .coalesce = 2,
- .req_size = get_req_size(def),
- .in_error = false,
- .bpf = NULL
- });
+ INIT_LIST_HEAD(&vp->list);
+ vp->dev = dev;
+ vp->unit = n;
+ vp->options = get_transport_options(def);
+ vp->parsed = def;
+ vp->max_packet = get_mtu(def) + ETH_HEADER_OTHER;
+ /*
+ * TODO - we need to calculate headroom so that ip header
+ * is 16 byte aligned all the time
+ */
+ vp->headroom = get_headroom(def);
+ vp->coalesce = 2;
+ vp->req_size = get_req_size(def);
dev->features = dev->hw_features = (NETIF_F_SG | NETIF_F_FRAGLIST);
tasklet_init(&vp->tx_poll, vector_tx_poll, (unsigned long)vp);
--
2.39.5
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 5.10 3/6] net: usb: qmi_wwan: add SIMCom 8230C composition
2025-06-30 21:01 [PATCH AUTOSEL 5.10 1/6] atm: idt77252: Add missing `dma_map_error()` Sasha Levin
2025-06-30 21:01 ` [PATCH AUTOSEL 5.10 2/6] um: vector: Reduce stack usage in vector_eth_configure() Sasha Levin
@ 2025-06-30 21:02 ` Sasha Levin
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 4/6] vt: add missing notification when switching back to text mode Sasha Levin
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2025-06-30 21:02 UTC (permalink / raw)
To: patches, stable
Cc: Xiaowei Li, Bjørn Mork, Jakub Kicinski, Sasha Levin, netdev,
linux-usb
From: Xiaowei Li <xiaowei.li@simcom.com>
[ Upstream commit 0b39b055b5b48cbbdf5746a1ca6e3f6b0221e537 ]
Add support for SIMCom 8230C which is based on Qualcomm SDX35 chip.
0x9071: tty (DM) + tty (NMEA) + tty (AT) + rmnet
T: Bus=01 Lev=01 Prnt=01 Port=05 Cnt=02 Dev#= 8 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1e0e ProdID=9071 Rev= 5.15
S: Manufacturer=SIMCOM
S: Product=SDXBAAGHA-IDP _SN:D744C4C5
S: SerialNumber=0123456789ABCDEF
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=50 Driver=qmi_wwan
E: Ad=86(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=none
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Signed-off-by: Xiaowei Li <xiaowei.li@simcom.com>
Acked-by: Bjørn Mork <bjorn@mork.no>
Link: https://patch.msgid.link/tencent_21D781FAA4969FEACA6ABB460362B52C9409@qq.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees. Here's my
detailed analysis:
## Rationale for Backporting:
1. **Stable kernel rules explicitly allow device ID additions**:
According to Documentation/process/stable-kernel-rules.rst line 15,
patches must "either fix a real bug that bothers people or just add a
device ID." This commit clearly falls into the "add a device ID"
category.
2. **Simple, low-risk change**: The commit adds exactly one line:
```c
{QMI_QUIRK_SET_DTR(0x1e0e, 0x9071, 3)}, /* SIMCom 8230C ++ */
```
This is a minimal change that only affects users with this specific
hardware (vendor ID 0x1e0e, product ID 0x9071).
3. **Enables hardware that would otherwise not work**: Without this
device ID entry, users with the SIMCom 8230C modem cannot use their
hardware with the qmi_wwan driver. This directly impacts
functionality for those users.
4. **Follows established patterns**: The commit uses `QMI_QUIRK_SET_DTR`
macro, consistent with the existing SIMCom entry at line 1428:
```c
{QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E
++ */
```
This shows the vendor has a history of requiring the DTR quirk for
their devices.
5. **Historical precedent supports backporting**: Of the 5 similar
commits analyzed, 4 were backported to stable:
- Fibocom FG132 (YES)
- MeiG Smart SRM825L (YES)
- Telit FN912 compositions (YES)
- Telit FN920C04 compositions (YES)
- Quectel RG255C (NO)
The 80% backport rate for similar device ID additions suggests this
type of change is generally considered appropriate for stable.
6. **No risk to existing functionality**: The change only adds support
for a new device ID (0x9071) and doesn't modify any existing device
support or core driver functionality.
The commit meets all criteria for stable backporting: it's obviously
correct, tested (as evidenced by the detailed USB descriptor output in
the commit message), small (1 line), and enables hardware support that
users need.
drivers/net/usb/qmi_wwan.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 3ab7b27b6bac3..9f493d504d20f 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1360,6 +1360,7 @@ static const struct usb_device_id products[] = {
{QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
{QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
{QMI_QUIRK_SET_DTR(0x1e0e, 0x9001, 5)}, /* SIMCom 7100E, 7230E, 7600E ++ */
+ {QMI_QUIRK_SET_DTR(0x1e0e, 0x9071, 3)}, /* SIMCom 8230C ++ */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0195, 4)}, /* Quectel EG95 */
--
2.39.5
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 5.10 4/6] vt: add missing notification when switching back to text mode
2025-06-30 21:01 [PATCH AUTOSEL 5.10 1/6] atm: idt77252: Add missing `dma_map_error()` Sasha Levin
2025-06-30 21:01 ` [PATCH AUTOSEL 5.10 2/6] um: vector: Reduce stack usage in vector_eth_configure() Sasha Levin
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 3/6] net: usb: qmi_wwan: add SIMCom 8230C composition Sasha Levin
@ 2025-06-30 21:02 ` Sasha Levin
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 5/6] HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY Sasha Levin
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 6/6] HID: quirks: Add quirk for 2 Chicony Electronics HP 5MP Cameras Sasha Levin
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2025-06-30 21:02 UTC (permalink / raw)
To: patches, stable
Cc: Nicolas Pitre, Greg Kroah-Hartman, Sasha Levin, mingo, tglx,
gnoack, aha310510
From: Nicolas Pitre <npitre@baylibre.com>
[ Upstream commit ff78538e07fa284ce08cbbcb0730daa91ed16722 ]
Programs using poll() on /dev/vcsa to be notified when VT changes occur
were missing one case: the switch from gfx to text mode.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Link: https://lore.kernel.org/r/9o5ro928-0pp4-05rq-70p4-ro385n21n723@onlyvoer.pbz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees for the
following reasons:
1. **It fixes a real bug affecting userspace programs**: The commit
addresses a missing notification that prevents programs using
`poll()` on `/dev/vcsa` from being properly notified when the VT
switches from graphics mode back to text mode. This is a functional
regression that breaks userspace applications monitoring VT state
changes.
2. **The fix is minimal and low-risk**: The change adds only a single
line - `notify_update(vc);` - in the `do_unblank_screen()` function.
This follows an established pattern where `notify_update()` is called
after VT state changes to notify userspace watchers.
3. **Consistent with existing code patterns**: Looking at the codebase,
`notify_update()` is already called in similar contexts throughout
vt.c. For example, in `vc_do_resize()`, we see:
```c
vt_event_post(VT_EVENT_RESIZE, vc->vc_num, vc->vc_num);
notify_update(vc);
```
The same pattern should apply when unblanking the screen.
4. **Similar commits were backported**: The historical commits provided
show that previous fixes adding or correcting `notify_update()` calls
were marked for stable backporting (all three YES examples had `Cc:
stable@vger.kernel.org`). These commits fixed similar issues where
userspace poll() notifications were missing.
5. **Clear symptom and fix**: The bug has a clear symptom (missing
notifications when switching from graphics to text mode) and a
straightforward fix that directly addresses the root cause. The
`leaving_gfx` parameter in `do_unblank_screen()` specifically
indicates this transition scenario.
6. **No architectural changes**: This is purely a bug fix that restores
expected behavior without introducing new features or changing the
architecture of the VT subsystem.
The commit meets all the criteria for stable backporting: it fixes an
important bug affecting userspace, the fix is minimal and contained, and
it follows established patterns for similar fixes that were previously
backported.
drivers/tty/vt/vt.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 5d9de3a53548b..98ca54330d771 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -4452,6 +4452,7 @@ void do_unblank_screen(int leaving_gfx)
set_palette(vc);
set_cursor(vc);
vt_event_post(VT_EVENT_UNBLANK, vc->vc_num, vc->vc_num);
+ notify_update(vc);
}
EXPORT_SYMBOL(do_unblank_screen);
--
2.39.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH AUTOSEL 5.10 5/6] HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY
2025-06-30 21:01 [PATCH AUTOSEL 5.10 1/6] atm: idt77252: Add missing `dma_map_error()` Sasha Levin
` (2 preceding siblings ...)
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 4/6] vt: add missing notification when switching back to text mode Sasha Levin
@ 2025-06-30 21:02 ` Sasha Levin
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 6/6] HID: quirks: Add quirk for 2 Chicony Electronics HP 5MP Cameras Sasha Levin
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2025-06-30 21:02 UTC (permalink / raw)
To: patches, stable
Cc: Zhang Heng, Jiri Kosina, Sasha Levin, jikos, bentiss, linux-input
From: Zhang Heng <zhangheng@kylinos.cn>
[ Upstream commit 1a8953f4f7746c6a515989774fe03047c522c613 ]
MARTLINKTECHNOLOGY is a microphone device, when the HID interface in an
audio device is requested to get specific report id, the following error
may occur.
[ 562.939373] usb 1-1.4.1.2: new full-speed USB device number 21 using xhci_hcd
[ 563.104908] usb 1-1.4.1.2: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
[ 563.104910] usb 1-1.4.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 563.104911] usb 1-1.4.1.2: Product: USB Composite Device
[ 563.104912] usb 1-1.4.1.2: Manufacturer: SmartlinkTechnology
[ 563.104913] usb 1-1.4.1.2: SerialNumber: 20201111000001
[ 563.229499] input: SmartlinkTechnology USB Composite Device as /devices/pci0000:00/0000:00:07.1/0000:04:00.3/usb1/1-1/1-1.4/1-1.4.1/1-1.4.1.2/1-1.4.1.2:1.2/0003:4C4A:4155.000F/input/input35
[ 563.291505] hid-generic 0003:4C4A:4155.000F: input,hidraw2: USB HID v2.01 Keyboard [SmartlinkTechnology USB Composite Device] on usb-0000:04:00.3-1.4.1.2/input2
[ 563.291557] usbhid 1-1.4.1.2:1.3: couldn't find an input interrupt endpoint
[ 568.506654] usb 1-1.4.1.2: 1:1: usb_set_interface failed (-110)
[ 573.626656] usb 1-1.4.1.2: 1:1: usb_set_interface failed (-110)
[ 578.746657] usb 1-1.4.1.2: 1:1: usb_set_interface failed (-110)
[ 583.866655] usb 1-1.4.1.2: 1:1: usb_set_interface failed (-110)
[ 588.986657] usb 1-1.4.1.2: 1:1: usb_set_interface failed (-110)
Ignore HID interface. The device is working properly.
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees. Here's my
extensive analysis:
1. **The commit fixes a real user-visible bug**: The device causes
repeated USB interface timeout errors (`usb_set_interface failed
(-110)`) that spam the kernel log and potentially interfere with
device operation. The error log shows five consecutive timeout
failures over 25 seconds, which would significantly impact user
experience.
2. **The fix is minimal and contained**: The code changes are extremely
simple - just adding two lines to define the vendor/device ID in
`hid-ids.h` and one line to add it to the `hid_ignore_list[]` array
in `hid-quirks.c`. This is the standard pattern for HID quirks.
3. **Similar commits were backported**: This is very similar to "Similar
Commit #1" (Logitech GROUP) which also dealt with HID interfaces on
audio devices causing problems. That commit added `HID_QUIRK_NOGET`
and was backported. The pattern is identical - an audio device with a
problematic HID interface that needs to be handled via quirks.
4. **No risk of regression**: The change only affects devices with
vendor ID 0x4c4a and product ID 0x4155. When a device matches this
ID, the HID subsystem will simply skip it via the `hid_ignore()`
function check in `hid_add_device()`. This cannot affect any other
devices.
5. **The device functions properly with the fix**: The commit message
explicitly states "The device is working properly" - meaning the
audio functionality works fine once the HID interface is ignored.
This is not breaking functionality but rather preventing the HID
subsystem from interfering with a working audio device.
6. **The error pattern indicates a hardware quirk**: The continuous
timeout errors (-110) when trying to set the USB interface suggests
the device's HID implementation doesn't properly respond to standard
HID commands. This is exactly the type of hardware-specific issue
that the HID quirks system was designed to handle.
This meets all the criteria for stable backporting: it fixes a bug
affecting users, is small and self-contained, has minimal risk, and
follows established patterns for similar fixes that were previously
backported.
drivers/hid/hid-ids.h | 3 +++
drivers/hid/hid-quirks.c | 1 +
2 files changed, 4 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 4b8f8e0ce8ca2..981ff6b233a40 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1360,4 +1360,7 @@
#define USB_VENDOR_ID_SIGNOTEC 0x2133
#define USB_DEVICE_ID_SIGNOTEC_VIEWSONIC_PD1011 0x0018
+#define USB_VENDOR_ID_SMARTLINKTECHNOLOGY 0x4c4a
+#define USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155 0x4155
+
#endif
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index b3e7ede8f398e..423d18a77b9e8 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -873,6 +873,7 @@ static const struct hid_device_id hid_ignore_list[] = {
#endif
{ HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) },
{ HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_HP_5MP_CAMERA_5473) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_SMARTLINKTECHNOLOGY, USB_DEVICE_ID_SMARTLINKTECHNOLOGY_4155) },
{ }
};
--
2.39.5
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH AUTOSEL 5.10 6/6] HID: quirks: Add quirk for 2 Chicony Electronics HP 5MP Cameras
2025-06-30 21:01 [PATCH AUTOSEL 5.10 1/6] atm: idt77252: Add missing `dma_map_error()` Sasha Levin
` (3 preceding siblings ...)
2025-06-30 21:02 ` [PATCH AUTOSEL 5.10 5/6] HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY Sasha Levin
@ 2025-06-30 21:02 ` Sasha Levin
4 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2025-06-30 21:02 UTC (permalink / raw)
To: patches, stable
Cc: Chia-Lin Kao (AceLan), Jiri Kosina, Sasha Levin, jikos, bentiss,
linux-input
From: "Chia-Lin Kao (AceLan)" <acelan.kao@canonical.com>
[ Upstream commit 54bae4c17c11688339eb73a04fd24203bb6e7494 ]
The Chicony Electronics HP 5MP Cameras (USB ID 04F2:B824 & 04F2:B82C)
report a HID sensor interface that is not actually implemented.
Attempting to access this non-functional sensor via iio_info causes
system hangs as runtime PM tries to wake up an unresponsive sensor.
Add these 2 devices to the HID ignore list since the sensor interface is
non-functional by design and should not be exposed to userspace.
Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
**YES**
This commit should be backported to stable kernel trees. Here's my
extensive analysis:
## Key Characteristics of This Commit:
1. **Fixes a Critical User-Facing Bug**: The commit addresses system
hangs that occur when userspace attempts to access non-functional HID
sensor interfaces through iio_info. This is a serious usability issue
that can make the system unresponsive.
2. **Minimal and Contained Changes**: The patch only adds two device IDs
to existing infrastructure:
- In `drivers/hid/hid-ids.h`: Added
`USB_DEVICE_ID_CHICONY_HP_5MP_CAMERA` (0xb824) and
`USB_DEVICE_ID_CHICONY_HP_5MP_CAMERA2` (0xb82c)
- In `drivers/hid/hid-quirks.c`: Added these two devices to the
`hid_ignore_list[]` array
3. **Zero Risk of Regression**: The changes only affect the specific USB
devices (04F2:B824 and 04F2:B82C). No existing functionality is
modified, and no code logic is changed.
## Comparison with Similar Commits:
This commit is nearly identical to **Similar Commit #1** (which was
backported), where a QUANTA HP 5MP Camera (0408:5473) was added to the
ignore list for the exact same reason - non-functional sensor causing
system hangs. Both commits:
- Target HP 5MP cameras with non-functional sensors
- Use the same fix approach (adding to HID ignore list)
- Prevent system hangs when accessing the sensor
## Alignment with Stable Kernel Rules:
The commit perfectly aligns with stable tree criteria:
- **Fixes a real bug**: System hangs are critical issues
- **Already in Linus' tree**: Signed-off by Jiri Kosina (HID maintainer)
- **Small change**: Only 4 lines of actual code changes
- **Obviously correct**: Simply adding device IDs to an ignore list
- **No new features**: Pure bugfix
- **Hardware-specific**: Only affects users with these specific cameras
## Historical Precedent:
Looking at the provided similar commits:
- 4 out of 5 hardware quirk commits were backported (80% backport rate)
- All commits fixing system hangs or device disconnections were
backported
- The only non-backported commit (#4) involved architectural changes to
enum handling
This commit follows the exact pattern of successfully backported
hardware quirks, making it an excellent candidate for stable inclusion.
drivers/hid/hid-ids.h | 2 ++
drivers/hid/hid-quirks.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 981ff6b233a40..8bfa90e37ea17 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -278,6 +278,8 @@
#define USB_DEVICE_ID_ASUS_AK1D 0x1125
#define USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A 0x1408
#define USB_DEVICE_ID_CHICONY_ACER_SWITCH12 0x1421
+#define USB_DEVICE_ID_CHICONY_HP_5MP_CAMERA 0xb824
+#define USB_DEVICE_ID_CHICONY_HP_5MP_CAMERA2 0xb82c
#define USB_VENDOR_ID_CHUNGHWAT 0x2247
#define USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH 0x0001
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index 423d18a77b9e8..9c1c65612adb7 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -726,6 +726,8 @@ static const struct hid_device_id hid_ignore_list[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_AVERMEDIA, USB_DEVICE_ID_AVER_FM_MR800) },
{ HID_USB_DEVICE(USB_VENDOR_ID_AXENTIA, USB_DEVICE_ID_AXENTIA_FM_RADIO) },
{ HID_USB_DEVICE(USB_VENDOR_ID_BERKSHIRE, USB_DEVICE_ID_BERKSHIRE_PCWD) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_HP_5MP_CAMERA) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_HP_5MP_CAMERA2) },
{ HID_USB_DEVICE(USB_VENDOR_ID_CIDC, 0x0103) },
{ HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_RADIO_SI470X) },
{ HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_RADIO_SI4713) },
--
2.39.5
^ permalink raw reply related [flat|nested] 6+ messages in thread