Linux USB
 help / color / mirror / Atom feed
* [bug report] usb: typec: tipd: Handle mode transitions for CD321x
@ 2025-09-18  9:52 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2025-09-18  9:52 UTC (permalink / raw)
  To: Hector Martin; +Cc: linux-usb

Hello Hector Martin,

Commit 82432bbfb9e8 ("usb: typec: tipd: Handle mode transitions for
CD321x") from Sep 14, 2025 (linux-next), leads to the following
Smatch static checker warning:

	drivers/usb/typec/tipd/core.c:821 cd321x_update_work()
	error: 'tps->partner' dereferencing possible ERR_PTR()

drivers/usb/typec/tipd/core.c
    805         /* Set up partner if we were previously disconnected (or changed). */
    806         if (!tps->partner) {
    807                 struct typec_partner_desc desc;
    808 
    809                 desc.usb_pd = is_pd;
    810                 desc.accessory = TYPEC_ACCESSORY_NONE; /* XXX: handle accessories */
    811                 desc.identity = NULL;
    812 
    813                 if (desc.usb_pd)
    814                         desc.identity = &st.partner_identity;
    815 
    816                 tps->partner = typec_register_partner(tps->port, &desc);
    817                 if (IS_ERR(tps->partner))
                                   ^^^^^^^^^^^^
    818                         dev_warn(tps->dev, "%s: failed to register partnet\n", __func__);

tps->partner is an error pointer.

    819 
    820                 if (desc.identity) {
--> 821                         typec_partner_set_identity(tps->partner);
                                                           ^^^^^^^^^^^^
but typec_partner_set_identity() dereferences it.

    822                         cd321x->cur_partner_identity = st.partner_identity;
    823                 }
    824         }
    825 
    826         /* Update the TypeC MUX/PHY state */
    827         cd321x_typec_update_mode(tps, &st);
    828 
    829         /* Launch the USB role switch */
    830         usb_role_switch_set_role(tps->role_sw, new_role);
    831 
    832         power_supply_changed(tps->psy);
    833 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-09-18  9:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-18  9:52 [bug report] usb: typec: tipd: Handle mode transitions for CD321x Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox