Commit 22d96a28 authored by Jameson Thies's avatar Jameson Thies Committed by Greg Kroah-Hartman
Browse files

usb: typec: ucsi: Only set number of plug altmodes after registration



Move the setting of the plug's number of alternate modes into the
same condition as the plug's registration to prevent dereferencing the
connector's plug pointer while it is null.

Fixes: c313a44a ("usb: typec: ucsi: Always set number of alternate modes")
Suggested-by: default avatarJon Hunter <jonathanh@nvidia.com>
Signed-off-by: default avatarJameson Thies <jthies@google.com>
Reviewed-by: default avatarBenson Leung <bleung@chromium.org>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Tested-by: default avatarJon Hunter <jonathanh@nvidia.com>
Reviewed-by: default avatarJon Hunter <jonathanh@nvidia.com>
Link: https://lore.kernel.org/r/20240625004607.3223757-1-jthies@google.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 36b1235a
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -1180,7 +1180,6 @@ static int ucsi_check_cable(struct ucsi_connector *con)
		ret = ucsi_register_altmodes(con, UCSI_RECIPIENT_SOP_P);
		if (ret < 0)
			return ret;
	}

		if (con->plug_altmode[0]) {
			num_plug_am = ucsi_get_num_altmode(con->plug_altmode);
@@ -1188,6 +1187,7 @@ static int ucsi_check_cable(struct ucsi_connector *con)
		} else {
			typec_plug_set_num_altmodes(con->plug, 0);
		}
	}

	return 0;
}