Re: [PATCH] usb: typec: qcom-pmic-typec: disable cc_debounce_dwork on stop
From: Konrad Dybcio
Date: Thu Aug 20 2026 - 04:15:26 EST
On 8/19/26 6:19 PM, Fan Wu wrote:
> cc_debounce_dwork lives on the system workqueue but is armed from
> tcpm callbacks (set_cc/start_toggling). Those callbacks run on tcpm's
> kthread worker which is only destroyed by tcpm_unregister_port(), after
> port_stop() has already returned, opening a potential race window where
> tcpm's worker flush re-arms the work.
[...]
> --- a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c
> +++ b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c
> @@ -694,6 +694,8 @@ static void qcom_pmic_typec_port_stop(struct pmic_typec *tcpm)
>
> for (i = 0; i < pmic_typec_port->nr_irqs; i++)
> disable_irq(pmic_typec_port->irq_data[i].irq);
> +
> + disable_delayed_work_sync(&pmic_typec_port->cc_debounce_dwork);
Doesn't this make disable_irq() get called undesirably?
Konrad