From: Greg Kroah-Hartman Date: Tue, 17 Mar 2026 11:24:12 +0000 (+0100) Subject: 6.12-stable patches X-Git-Tag: v6.18.19~58 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dd67ae4469a37ed4f30bb9dff277bff4ddd123a1;p=thirdparty%2Fkernel%2Fstable-queue.git 6.12-stable patches added patches: revert-tcpm-allow-looking-for-role_sw-device-in-the-main-node.patch --- diff --git a/queue-6.12/revert-tcpm-allow-looking-for-role_sw-device-in-the-main-node.patch b/queue-6.12/revert-tcpm-allow-looking-for-role_sw-device-in-the-main-node.patch new file mode 100644 index 0000000000..67ddf8f049 --- /dev/null +++ b/queue-6.12/revert-tcpm-allow-looking-for-role_sw-device-in-the-main-node.patch @@ -0,0 +1,42 @@ +From 6b275bfaa16be3fb1689fa6794e445ecd127a1b4 Mon Sep 17 00:00:00 2001 +From: Xu Yang +Date: Mon, 9 Mar 2026 15:43:12 +0800 +Subject: Revert "tcpm: allow looking for role_sw device in the main node" + +From: Xu Yang + +commit 6b275bfaa16be3fb1689fa6794e445ecd127a1b4 upstream. + +This reverts commit 1366cd228b0c67b60a2c0c26ef37fe9f7cfedb7f. + +The fwnode_usb_role_switch_get() returns NULL only if no connection is +found, returns ERR_PTR(-EPROBE_DEFER) if connection is found but deferred +probe is needed, or a valid pointer of usb_role_switch. + +When switching from a NULL check to IS_ERR_OR_NULL(), usb_role_switch_get() +returns NULL and overwrites the ERR_PTR(-EPROBE_DEFER) returned by +fwnode_usb_role_switch_get(). This causes the deferred probe indication to +be lost, preventing the USB role switch from ever being retrieved. + +Fixes: 1366cd228b0c ("tcpm: allow looking for role_sw device in the main node") +Cc: stable +Signed-off-by: Xu Yang +Tested-by: Arnaud Ferraris +Reviewed-by: Heikki Krogerus +Link: https://patch.msgid.link/20260309074313.2809867-2-xu.yang_2@nxp.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/typec/tcpm/tcpm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/typec/tcpm/tcpm.c ++++ b/drivers/usb/typec/tcpm/tcpm.c +@@ -7697,7 +7697,7 @@ struct tcpm_port *tcpm_register_port(str + port->partner_desc.identity = &port->partner_ident; + + port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode); +- if (IS_ERR_OR_NULL(port->role_sw)) ++ if (!port->role_sw) + port->role_sw = usb_role_switch_get(port->dev); + if (IS_ERR(port->role_sw)) { + err = PTR_ERR(port->role_sw); diff --git a/queue-6.12/series b/queue-6.12/series index d7b0f099e6..be70e37318 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -138,3 +138,4 @@ scsi-hisi_sas-use-macro-instead-of-magic-number.patch scsi-hisi_sas-fix-null-pointer-exception-during-user.patch kbuild-disable-cc_has_asm_goto_output-on-clang-17.patch fix-cc_has_asm_goto_output-on-non-x86-architectures.patch +revert-tcpm-allow-looking-for-role_sw-device-in-the-main-node.patch