From: Greg Kroah-Hartman Date: Tue, 8 Jul 2025 15:20:08 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v5.15.187~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=658196fbfbaeecbfad05ea7d22d7889d51b06b1f;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: platform-x86-think-lmi-create-ksets-consecutively.patch usb-typec-displayport-fix-potential-deadlock.patch --- diff --git a/queue-5.15/platform-x86-think-lmi-create-ksets-consecutively.patch b/queue-5.15/platform-x86-think-lmi-create-ksets-consecutively.patch new file mode 100644 index 0000000000..aa6a5dec2d --- /dev/null +++ b/queue-5.15/platform-x86-think-lmi-create-ksets-consecutively.patch @@ -0,0 +1,58 @@ +From 8dab34ca77293b409c3223636dde915a22656748 Mon Sep 17 00:00:00 2001 +From: Kurt Borja +Date: Mon, 30 Jun 2025 14:31:19 -0300 +Subject: platform/x86: think-lmi: Create ksets consecutively +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Kurt Borja + +commit 8dab34ca77293b409c3223636dde915a22656748 upstream. + +Avoid entering tlmi_release_attr() in error paths if both ksets are not +yet created. + +This is accomplished by initializing them side by side. + +Reviewed-by: Mark Pearson +Reviewed-by: Ilpo Järvinen +Cc: stable@vger.kernel.org +Signed-off-by: Kurt Borja +Link: https://lore.kernel.org/r/20250630-lmi-fix-v3-1-ce4f81c9c481@gmail.com +Signed-off-by: Ilpo Järvinen +Signed-off-by: Greg Kroah-Hartman +--- + drivers/platform/x86/think-lmi.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +--- a/drivers/platform/x86/think-lmi.c ++++ b/drivers/platform/x86/think-lmi.c +@@ -827,6 +827,14 @@ static int tlmi_sysfs_init(void) + goto fail_device_created; + } + ++ tlmi_priv.authentication_kset = kset_create_and_add("authentication", NULL, ++ &tlmi_priv.class_dev->kobj); ++ if (!tlmi_priv.authentication_kset) { ++ kset_unregister(tlmi_priv.attribute_kset); ++ ret = -ENOMEM; ++ goto fail_device_created; ++ } ++ + for (i = 0; i < TLMI_SETTINGS_COUNT; i++) { + /* Check if index is a valid setting - skip if it isn't */ + if (!tlmi_priv.setting[i]) +@@ -863,12 +871,6 @@ static int tlmi_sysfs_init(void) + goto fail_create_attr; + } + /* Create authentication entries */ +- tlmi_priv.authentication_kset = kset_create_and_add("authentication", NULL, +- &tlmi_priv.class_dev->kobj); +- if (!tlmi_priv.authentication_kset) { +- ret = -ENOMEM; +- goto fail_create_attr; +- } + tlmi_priv.pwd_admin->kobj.kset = tlmi_priv.authentication_kset; + ret = kobject_add(&tlmi_priv.pwd_admin->kobj, NULL, "%s", "Admin"); + if (ret) diff --git a/queue-5.15/series b/queue-5.15/series index a2990b6945..e2f77d1ffd 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -151,3 +151,5 @@ xhci-dbc-flush-queued-requests-before-stopping-dbc.patch usb-cdnsp-do-not-disable-slot-for-disabled-slot.patch i2c-designware-fix-an-initialization-issue.patch logitech-c-270-even-more-broken.patch +platform-x86-think-lmi-create-ksets-consecutively.patch +usb-typec-displayport-fix-potential-deadlock.patch diff --git a/queue-5.15/usb-typec-displayport-fix-potential-deadlock.patch b/queue-5.15/usb-typec-displayport-fix-potential-deadlock.patch new file mode 100644 index 0000000000..048ffccd72 --- /dev/null +++ b/queue-5.15/usb-typec-displayport-fix-potential-deadlock.patch @@ -0,0 +1,43 @@ +From 099cf1fbb8afc3771f408109f62bdec66f85160e Mon Sep 17 00:00:00 2001 +From: Andrei Kuchynski +Date: Tue, 24 Jun 2025 13:32:46 +0000 +Subject: usb: typec: displayport: Fix potential deadlock + +From: Andrei Kuchynski + +commit 099cf1fbb8afc3771f408109f62bdec66f85160e upstream. + +The deadlock can occur due to a recursive lock acquisition of +`cros_typec_altmode_data::mutex`. +The call chain is as follows: +1. cros_typec_altmode_work() acquires the mutex +2. typec_altmode_vdm() -> dp_altmode_vdm() -> +3. typec_altmode_exit() -> cros_typec_altmode_exit() +4. cros_typec_altmode_exit() attempts to acquire the mutex again + +To prevent this, defer the `typec_altmode_exit()` call by scheduling +it rather than calling it directly from within the mutex-protected +context. + +Cc: stable +Fixes: b4b38ffb38c9 ("usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode") +Signed-off-by: Andrei Kuchynski +Reviewed-by: Heikki Krogerus +Link: https://lore.kernel.org/r/20250624133246.3936737-1-akuchynski@chromium.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/typec/altmodes/displayport.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/drivers/usb/typec/altmodes/displayport.c ++++ b/drivers/usb/typec/altmodes/displayport.c +@@ -299,8 +299,7 @@ static int dp_altmode_vdm(struct typec_a + case CMDT_RSP_NAK: + switch (cmd) { + case DP_CMD_STATUS_UPDATE: +- if (typec_altmode_exit(alt)) +- dev_err(&dp->alt->dev, "Exit Mode Failed!\n"); ++ dp->state = DP_STATE_EXIT; + break; + case DP_CMD_CONFIGURE: + dp->data.conf = 0;