Skip to contentSkip to conversation

New: Infinite udev uevent stream from USB-C port

Bug 219626 [email protected] 1 participant 3 messages Dec 23, 2024 – Jan 2, 2025 USB

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=219626

            Bug ID: 219626
           Summary: Infinite udev uevent stream from USB-C port
           Product: Drivers
           Version: 2.5
          Hardware: Intel
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: USB
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
        Regression: Yes
           Bisected fa48d7e81624efdf398b990a9049e9cd75a5aead
         commit-id:

Created attachment 307397
--> https://bugzilla.kernel.org/attachment.cgi?id=307397&action=edit
udevadm monitor output

After updating to 6.12.5 from 6.12.4 systemd-udevd worker burns CPU processing an infinite stream of USB-C events. In order to reproduce I have to plug off the USB cable and plug it in again. I tried 6.12.6 kernel with the same buggy result. The problem disappears after going back to 6.12.4.

My machine is an ASUS Zenbook UM5302TA laptop.

Reverting this commit fixes the issue:

commit c0ca6fd5f6ebde8fc0df8bb5c32629d1284f60d0

Author: Saranya Gopal <[email protected]>
Date:   Fri Aug 30 14:13:42 2024 +0530

usb: typec: ucsi: Do not call ACPI _DSM method for UCSI read operations

[ Upstream commit fa48d7e81624efdf398b990a9049e9cd75a5aead ]

ACPI _DSM methods are needed only for UCSI write operations and for reading CCI during RESET_PPM operation. So, remove _DSM calls from other places. While there, remove the Zenbook quirk also since the default behavior now aligns with the Zenbook quirk. With this change, GET_CONNECTOR_STATUS returns at least 6 seconds faster than before in Arrowlake-S platforms.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 219626] Infinite udev uevent stream from USB-C port

https://bugzilla.kernel.org/show_bug.cgi?id=219626

--- Comment #1 from Marcin Bachry ([email protected]) --- Here's a minimal revert required to fix the issue:

Quoted 19 lines
drivers/usb/typec/ucsi/ucsi_acpi.c +3 -5
index accf15ff1306..0e28ea57c611 100644
@@ -61,11 +61,9 @@ static int ucsi_acpi_read_cci(struct ucsi *ucsi, u32 *cci)
      struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi);
      int ret;
 
-     if (UCSI_COMMAND(ua->cmd) == UCSI_PPM_RESET) {
-             ret = ucsi_acpi_dsm(ua, UCSI_DSM_FUNC_READ);
-             if (ret)
-                     return ret;
-     }
+     ret = ucsi_acpi_dsm(ua, UCSI_DSM_FUNC_READ);
+     if (ret)
+             return ret;
 
      memcpy(cci, ua->base + UCSI_CCI, sizeof(*cci));
Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#2 lore raw

[Bug 219626] Infinite udev uevent stream from USB-C port

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=219626

--- Comment #2 from Marcin Bachry ([email protected]) --- Created attachment 307441
--> https://bugzilla.kernel.org/attachment.cgi?id=307441&action=edit
minimal reverting change

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.