On Mon, Aug 24, 2026 at 04:58:04PM +0530, Saurabh Anand wrote: > The Type-C mux switch guard only checked dp_powered_on, which is set in > qmp_combo_dp_power_on(). However there is a race window between > qmp_combo_dp_init() and qmp_combo_dp_power_on() during which dp_init_count > is non-zero but dp_powered_on is still false. A Type-C orientation change > arriving in this window would proceed with the mux switch while the DP PHY > is mid-initialization, corrupting the PHY state. > > Extend the guard to also block the mux switch when dp_init_count is > non-zero, covering the full period from dp_init through dp_power_on. > > Signed-off-by: Saurabh Anand <[email protected]> > --- > drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) >
If it's a race, it usually means you need a lock. Otherwise you can still read the incorrect value of the variable. -- With best wishes Dmitry
