[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240510184324.2944101-2-jthies@google.com>
Date: Fri, 10 May 2024 18:43:21 +0000
From: Jameson Thies <jthies@...gle.com>
To: heikki.krogerus@...ux.intel.com, linux-usb@...r.kernel.org
Cc: jthies@...gle.com, pmalani@...omium.org, bleung@...gle.com,
abhishekpandit@...omium.org, andersson@...nel.org,
dmitry.baryshkov@...aro.org, fabrice.gasnier@...s.st.com,
gregkh@...uxfoundation.org, hdegoede@...hat.com, neil.armstrong@...aro.org,
rajaram.regupathy@...el.com, saranya.gopal@...el.com,
linux-kernel@...r.kernel.org, Benson Leung <bleung@...omium.org>
Subject: [PATCH v4 1/4] usb: typec: ucsi: Fix null pointer dereference in trace
From: Abhishek Pandit-Subedi <abhishekpandit@...omium.org>
ucsi_register_altmode checks IS_ERR for the alt pointer and treats
NULL as valid. When CONFIG_TYPEC_DP_ALTMODE is not enabled,
ucsi_register_displayport returns NULL which causes a NULL pointer
dereference in trace. Rather than return NULL, call
typec_port_register_altmode to register DisplayPort alternate mode
as a non-controllable mode when CONFIG_TYPEC_DP_ALTMODE is not enabled.
Reviewed-by: Benson Leung <bleung@...omium.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@...ux.intel.com>
Signed-off-by: Jameson Thies <jthies@...gle.com>
Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@...omium.org>
---
Changes in V4:
- Updated commit message.
Changes in V3:
- Returns typec_port_register_altmode call from
ucsi_register_displayport when CONFIG_TYPEC_DP_ALTMODE is not enabled.
Updated commit message.
Changes in V2:
- Checks for error response from ucsi_register_displayport when
registering DisplayPort alternate mode.
drivers/usb/typec/ucsi/ucsi.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/typec/ucsi/ucsi.h b/drivers/usb/typec/ucsi/ucsi.h
index c4d103db9d0f8..f66224a270bc6 100644
--- a/drivers/usb/typec/ucsi/ucsi.h
+++ b/drivers/usb/typec/ucsi/ucsi.h
@@ -496,7 +496,7 @@ ucsi_register_displayport(struct ucsi_connector *con,
bool override, int offset,
struct typec_altmode_desc *desc)
{
- return NULL;
+ return typec_port_register_altmode(con->port, desc);
}
static inline void
--
2.45.0.118.g7fe29c98d7-goog
Powered by blists - more mailing lists