From: "Christian A. Ehrhardt" <lk@c--e.de>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>,
linux-usb@vger.kernel.org
Cc: "Christian A. Ehrhardt" <lk@c--e.de>,
Dell.Client.Kernel@dell.com,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Hans de Goede" <hdegoede@redhat.com>,
"Jack Pham" <quic_jackp@quicinc.com>,
"Fabrice Gasnier" <fabrice.gasnier@foss.st.com>,
"Samuel Čavoj" <samuel@cavoj.net>,
linux-kernel@vger.kernel.org
Subject: [PATCH 1/3] usb: ucsi: Add missing ppm_lock
Date: Tue, 16 Jan 2024 23:40:39 +0100 [thread overview]
Message-ID: <20240116224041.220740-2-lk@c--e.de> (raw)
In-Reply-To: <20240116224041.220740-1-lk@c--e.de>
Calling ->sync_write must be done while holding the PPM lock as the
mailbox logic does not support concurrent commands.
Thus protect the only call to ucsi_acknowledge_connector_change
with the PPM lock as it calls ->sync_write. All other calls to
->sync_write already happen under the PPM lock.
Signed-off-by: Christian A. Ehrhardt <lk@c--e.de>
---
NOTE: This is not a theoretical issue. I've seen problems resulting
from the missing lock on real hardware.
drivers/usb/typec/ucsi/ucsi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index 61b64558f96c..8f9dff993b3d 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -935,7 +935,9 @@ static void ucsi_handle_connector_change(struct work_struct *work)
clear_bit(EVENT_PENDING, &con->ucsi->flags);
+ mutex_lock(&ucsi->ppm_lock);
ret = ucsi_acknowledge_connector_change(ucsi);
+ mutex_unlock(&ucsi->ppm_lock);
if (ret)
dev_err(ucsi->dev, "%s: ACK failed (%d)", __func__, ret);
--
2.40.1
next prev parent reply other threads:[~2024-01-16 22:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-16 22:40 [PATCH 0/3] UCSI fixes Christian A. Ehrhardt
2024-01-16 22:40 ` Christian A. Ehrhardt [this message]
2024-01-17 5:44 ` [PATCH 1/3] usb: ucsi: Add missing ppm_lock Greg Kroah-Hartman
2024-01-17 7:45 ` Christian A. Ehrhardt
2024-01-16 22:40 ` [PATCH 2/3] usb: ucsi_acpi: Fix command completion handling Christian A. Ehrhardt
2024-01-17 5:44 ` Greg Kroah-Hartman
2024-01-16 22:40 ` [PATCH 3/3] usb: ucsi_acpi: Quirk to ack a connector change ack cmd Christian A. Ehrhardt
2024-01-17 23:38 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240116224041.220740-2-lk@c--e.de \
--to=lk@c--e.de \
--cc=Dell.Client.Kernel@dell.com \
--cc=fabrice.gasnier@foss.st.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=quic_jackp@quicinc.com \
--cc=samuel@cavoj.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.