On Mon, Apr 01, 2024 at 11:05:15PM +0200, Christian A. Ehrhardt wrote: > Fix issues when initially checking for a connector change: > - Use the correct connector number not the entire CCI. > - Call ->read under the PPM lock. > - Remove a bogus READ_ONCE. > > Fixes: 808a8b9e0b87 ("usb: typec: ucsi: Check for notifications after init") > Cc: stable@xxxxxxxxxx > Signed-off-by: Christian A. Ehrhardt <lk@xxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/ucsi/ucsi.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c > index 31d8a46ae5e7..bd6ae92aa39e 100644 > --- a/drivers/usb/typec/ucsi/ucsi.c > +++ b/drivers/usb/typec/ucsi/ucsi.c > @@ -1736,11 +1736,13 @@ static int ucsi_init(struct ucsi *ucsi) > ucsi->connector = connector; > ucsi->ntfy = ntfy; > > + mutex_lock(&ucsi->ppm_lock); > ret = ucsi->ops->read(ucsi, UCSI_CCI, &cci, sizeof(cci)); > + mutex_unlock(&ucsi->ppm_lock); > if (ret) > return ret; > - if (UCSI_CCI_CONNECTOR(READ_ONCE(cci))) > - ucsi_connector_change(ucsi, cci); > + if (UCSI_CCI_CONNECTOR(cci)) > + ucsi_connector_change(ucsi, UCSI_CCI_CONNECTOR(cci)); > > return 0; > > -- > 2.40.1 -- heikki