* [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