Messages in this thread | | | Date | Wed, 3 Apr 2024 13:42:26 +0300 | From | Heikki Krogerus <> | Subject | Re: [PATCH] usb: typec: ucsi: Fix connector check on init |
| |
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@kernel.org > Signed-off-by: Christian A. Ehrhardt <lk@c--e.de>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> --- > 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
| |