[PATCH v2 0/3] soc: qcom: pmic_glink: v6.11-rc bug fixes

Bjorn Andersson posted 3 patches 1 year, 5 months ago
drivers/power/supply/qcom_battmgr.c   | 16 ++++++++-----
drivers/soc/qcom/pmic_glink.c         | 40 ++++++++++++++++++++++----------
drivers/soc/qcom/pmic_glink_altmode.c | 17 +++++++++-----
drivers/usb/typec/ucsi/ucsi_glink.c   | 43 ++++++++++++++++++++++++++---------
include/linux/soc/qcom/pmic_glink.h   | 11 +++++----
5 files changed, 87 insertions(+), 40 deletions(-)
Re: [PATCH v2 0/3] soc: qcom: pmic_glink: v6.11-rc bug fixes
Posted by Johan Hovold 1 year, 5 months ago
On Mon, Aug 19, 2024 at 01:07:44PM -0700, Bjorn Andersson wrote:
> Amit and Johan both reported a NULL pointer dereference in the
> pmic_glink client code during initialization, and Stephen Boyd pointed
> out the problem (race condition).
> 
> While investigating, and writing the fix, I noticed that
> ucsi_unregister() is called in atomic context but tries to sleep, and I
> also noticed that the condition for when to inform the pmic_glink client
> drivers when the remote has gone down is just wrong.
> 
> So, let's fix all three.

> Changes in v2:
> - Refer to the correct commit in the ucsi_unregister() patch.
> - Updated wording in the same commit message about the new error message
>   in the log.
> - Changed the data type of the introduced state variables, opted to go
>   for a bool as we only represent two states (and I would like to
>   further clean this up going forward)
> - Initialized the spinlock
> - Link to v1: https://lore.kernel.org/r/20240818-pmic-glink-v6-11-races-v1-0-f87c577e0bc9@quicinc.com
> 
> ---
> Bjorn Andersson (3):
>       soc: qcom: pmic_glink: Fix race during initialization
>       usb: typec: ucsi: Move unregister out of atomic section
>       soc: qcom: pmic_glink: Actually communicate with remote goes down

Tested-by: Johan Hovold <johan+linaro@kernel.org>