Re: [PATCH v2 3/6] HID: steam: Fix wording of connect/disconnect logs
[email protected] Thu, 06 Aug 2026 02:37:57 +0000
| Newsgroups | org.kernel.vger.linux-input |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: Pre-existing issues: - [High] Device sending an empty serial number causes silent resource leaks upon disconnection. - [Medium] Registration failure leaves `steam->serial_no` populated, permanently breaking subsequent connections. -- --- Patch [3]: [PATCH v2 3/6] HID: steam: Fix wording of connect/disconnect logs --- commit 1846261fd57667e998e1416cd9dcdbedc57da4e8 Author: Vicki Pfau <[email protected]> HID: steam: Fix wording of connect/disconnect logs This commit updates the connect and disconnect log messages to properly identify the device as a Deck or a Controller depending on the device quirks. It aligns these messages with other special-cased strings in the driver. > diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c > index 6476fbdc58886..38c00dab0b067 100644 > --- a/drivers/hid/hid-steam.c > +++ b/drivers/hid/hid-steam.c > @@ -1394,7 +1394,8 @@ static int steam_register(struct steam_device *steam) > "%s:steam_get_attributes failed with error %d\n", > __func__, ret); > > - hid_info(steam->hdev, "Steam Controller '%s' connected", > + hid_info(steam->hdev, "Steam %s '%s' connected", > + steam->quirks & STEAM_QUIRK_DECK ? "Deck" : "Controller", > steam->serial_no); [Severity: Medium] This is a pre-existing issue, but can a registration failure permanently break subsequent connections for this device? If steam_register() fails later in the function (for example, if steam_input_register() fails), the error path: steam_register_sensors_fail: steam_input_unregister(steam); steam_register_input_fail: steam_battery_unregister(steam); mutex_unlock(&steam->report_mutex); return ret; cleans up resources but does not clear steam->serial_no. On the next connection attempt, steam_register() will see steam->serial_no[0] is populated and immediately return 0 without setting up any input devices, leaving the device permanently broken until replugged. > > /* ignore battery errors, we can live without it */ > @@ -1427,7 +1428,8 @@ static void steam_unregister(struct steam_device *steam) > if (!steam->serial_no[0]) > return; [Severity: High] This is a pre-existing issue, but does this early return lead to a silent resource leak if the device sends an empty serial number? If steam_get_serial() successfully reads a valid HID reply but the string payload is empty, it populates steam->serial_no with an empty string using strscpy() and returns success, bypassing the fallback serial generation. Later, on disconnection, steam_unregister() will hit this early return and skip unregistering the input devices, sensors, and power supplies. > > - hid_info(steam->hdev, "Steam Controller '%s' disconnected", > + hid_info(steam->hdev, "Steam %s '%s' disconnected", > + steam->quirks & STEAM_QUIRK_DECK ? "Deck" : "Controller", > steam->serial_no); > steam_battery_unregister(steam); > steam_sensors_unregister(steam); -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=3