* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.