* [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard()
@ 2024-08-22 16:48 Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-22 16:48 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Andy Gross, linux-arm-msm,
linux-kernel
Cc: Krzysztof Kozlowski
Simplify error handling (less gotos) over locks with guard().
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
drivers/soc/qcom/pmic_glink_altmode.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/soc/qcom/pmic_glink_altmode.c b/drivers/soc/qcom/pmic_glink_altmode.c
index 463b1c528831..bd06ce161804 100644
--- a/drivers/soc/qcom/pmic_glink_altmode.c
+++ b/drivers/soc/qcom/pmic_glink_altmode.c
@@ -5,6 +5,7 @@
*/
#include <linux/auxiliary_bus.h>
#include <linux/bitfield.h>
+#include <linux/cleanup.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
@@ -114,7 +115,7 @@ static int pmic_glink_altmode_request(struct pmic_glink_altmode *altmode, u32 cm
* The USBC_CMD_WRITE_REQ ack doesn't identify the request, so wait for
* one ack at a time.
*/
- mutex_lock(&altmode->lock);
+ guard(mutex)(&altmode->lock);
req.hdr.owner = cpu_to_le32(altmode->owner_id);
req.hdr.type = cpu_to_le32(PMIC_GLINK_REQ_RESP);
@@ -125,18 +126,16 @@ static int pmic_glink_altmode_request(struct pmic_glink_altmode *altmode, u32 cm
ret = pmic_glink_send(altmode->client, &req, sizeof(req));
if (ret) {
dev_err(altmode->dev, "failed to send altmode request: %#x (%d)\n", cmd, ret);
- goto out_unlock;
+ return ret;
}
left = wait_for_completion_timeout(&altmode->pan_ack, 5 * HZ);
if (!left) {
dev_err(altmode->dev, "timeout waiting for altmode request ack for: %#x\n", cmd);
- ret = -ETIMEDOUT;
+ return -ETIMEDOUT;
}
-out_unlock:
- mutex_unlock(&altmode->lock);
- return ret;
+ return 0;
}
static void pmic_glink_altmode_enable_dp(struct pmic_glink_altmode *altmode,
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path
2024-08-22 16:48 [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard() Krzysztof Kozlowski
@ 2024-08-22 16:48 ` Krzysztof Kozlowski
2024-08-22 16:52 ` Krzysztof Kozlowski
` (3 more replies)
2024-08-22 16:48 ` [PATCH 2/3] soc: qcom: pbs: simplify locking with guard() Krzysztof Kozlowski
` (2 subsequent siblings)
3 siblings, 4 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-22 16:48 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Andy Gross, linux-arm-msm,
linux-kernel
Cc: Krzysztof Kozlowski, stable
If of_parse_phandle_with_args() succeeds, the OF node reference should
be dropped, regardless of number of phandle arguments.
Cc: <stable@vger.kernel.org>
Fixes: 9460ae2ff308 ("soc: qcom: Introduce common SMEM state machine code")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
drivers/soc/qcom/smem_state.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/qcom/smem_state.c b/drivers/soc/qcom/smem_state.c
index d9bfac6c54fb..cc5be8019b6a 100644
--- a/drivers/soc/qcom/smem_state.c
+++ b/drivers/soc/qcom/smem_state.c
@@ -112,7 +112,8 @@ struct qcom_smem_state *qcom_smem_state_get(struct device *dev,
if (args.args_count != 1) {
dev_err(dev, "invalid #qcom,smem-state-cells\n");
- return ERR_PTR(-EINVAL);
+ state = ERR_PTR(-EINVAL);
+ goto put;
}
state = of_node_to_state(args.np);
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] soc: qcom: pbs: simplify locking with guard()
2024-08-22 16:48 [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard() Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
@ 2024-08-22 16:48 ` Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH 3/3] soc: qcom: smem_state: " Krzysztof Kozlowski
2024-12-26 22:38 ` (subset) [PATCH 1/3] soc: qcom: pmic_glink_altmode: " Bjorn Andersson
3 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-22 16:48 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Andy Gross, linux-arm-msm,
linux-kernel
Cc: Krzysztof Kozlowski
Simplify error handling (less gotos) over locks with guard().
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
drivers/soc/qcom/qcom-pbs.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/drivers/soc/qcom/qcom-pbs.c b/drivers/soc/qcom/qcom-pbs.c
index 77a70d3d0d0b..1cc5d045f9dd 100644
--- a/drivers/soc/qcom/qcom-pbs.c
+++ b/drivers/soc/qcom/qcom-pbs.c
@@ -84,16 +84,16 @@ int qcom_pbs_trigger_event(struct pbs_dev *pbs, u8 bitmap)
if (IS_ERR_OR_NULL(pbs))
return -EINVAL;
- mutex_lock(&pbs->lock);
+ guard(mutex)(&pbs->lock);
ret = regmap_read(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH2, &val);
if (ret < 0)
- goto out;
+ return ret;
if (val == PBS_CLIENT_SCRATCH2_ERROR) {
/* PBS error - clear SCRATCH2 register */
ret = regmap_write(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH2, 0);
if (ret < 0)
- goto out;
+ return ret;
}
for (bit_pos = 0; bit_pos < 8; bit_pos++) {
@@ -104,37 +104,31 @@ int qcom_pbs_trigger_event(struct pbs_dev *pbs, u8 bitmap)
ret = regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH2,
BIT(bit_pos), 0);
if (ret < 0)
- goto out_clear_scratch1;
+ break;
/* Set the PBS sequence bit position */
ret = regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH1,
BIT(bit_pos), BIT(bit_pos));
if (ret < 0)
- goto out_clear_scratch1;
+ break;
/* Initiate the SW trigger */
ret = regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_TRIG_CTL,
PBS_CLIENT_SW_TRIG_BIT, PBS_CLIENT_SW_TRIG_BIT);
if (ret < 0)
- goto out_clear_scratch1;
+ break;
ret = qcom_pbs_wait_for_ack(pbs, bit_pos);
if (ret < 0)
- goto out_clear_scratch1;
+ break;
/* Clear the PBS sequence bit position */
regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH1, BIT(bit_pos), 0);
regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH2, BIT(bit_pos), 0);
}
-out_clear_scratch1:
/* Clear all the requested bitmap */
- ret = regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH1, bitmap, 0);
-
-out:
- mutex_unlock(&pbs->lock);
-
- return ret;
+ return regmap_update_bits(pbs->regmap, pbs->base + PBS_CLIENT_SCRATCH1, bitmap, 0);
}
EXPORT_SYMBOL_GPL(qcom_pbs_trigger_event);
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] soc: qcom: smem_state: simplify locking with guard()
2024-08-22 16:48 [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard() Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH 2/3] soc: qcom: pbs: simplify locking with guard() Krzysztof Kozlowski
@ 2024-08-22 16:48 ` Krzysztof Kozlowski
2024-12-26 22:38 ` (subset) [PATCH 1/3] soc: qcom: pmic_glink_altmode: " Bjorn Andersson
3 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-22 16:48 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Andy Gross, linux-arm-msm,
linux-kernel
Cc: Krzysztof Kozlowski
Simplify error handling (less gotos) over locks with guard().
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
drivers/soc/qcom/smem_state.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/soc/qcom/smem_state.c b/drivers/soc/qcom/smem_state.c
index a8be3a2f3382..cc5be8019b6a 100644
--- a/drivers/soc/qcom/smem_state.c
+++ b/drivers/soc/qcom/smem_state.c
@@ -3,6 +3,7 @@
* Copyright (c) 2015, Sony Mobile Communications Inc.
* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
*/
+#include <linux/cleanup.h>
#include <linux/device.h>
#include <linux/list.h>
#include <linux/module.h>
@@ -60,20 +61,15 @@ static struct qcom_smem_state *of_node_to_state(struct device_node *np)
{
struct qcom_smem_state *state;
- mutex_lock(&list_lock);
+ guard(mutex)(&list_lock);
list_for_each_entry(state, &smem_states, list) {
if (state->of_node == np) {
kref_get(&state->refcount);
- goto unlock;
+ return state;
}
}
- state = ERR_PTR(-EPROBE_DEFER);
-
-unlock:
- mutex_unlock(&list_lock);
-
- return state;
+ return ERR_PTR(-EPROBE_DEFER);
}
/**
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
@ 2024-08-22 16:52 ` Krzysztof Kozlowski
2024-10-07 14:26 ` (subset) " Bjorn Andersson
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-22 16:52 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Andy Gross, linux-arm-msm,
linux-kernel
Cc: stable
On 22/08/2024 18:48, Krzysztof Kozlowski wrote:
> If of_parse_phandle_with_args() succeeds, the OF node reference should
> be dropped, regardless of number of phandle arguments.
>
> Cc: <stable@vger.kernel.org>
> Fixes: 9460ae2ff308 ("soc: qcom: Introduce common SMEM state machine code")
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
And this one patch is a duplicate of what I sent separately. Can be
ignored. Sorry for the mess, time to finish work for today. :(
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: (subset) [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
2024-08-22 16:52 ` Krzysztof Kozlowski
@ 2024-10-07 14:26 ` Bjorn Andersson
2024-12-26 18:26 ` Bjorn Andersson
2024-12-26 22:38 ` Bjorn Andersson
3 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2024-10-07 14:26 UTC (permalink / raw)
To: Konrad Dybcio, Andy Gross, linux-arm-msm, linux-kernel,
Krzysztof Kozlowski
Cc: stable
On Thu, 22 Aug 2024 18:48:51 +0200, Krzysztof Kozlowski wrote:
> If of_parse_phandle_with_args() succeeds, the OF node reference should
> be dropped, regardless of number of phandle arguments.
>
>
Applied, thanks!
[2/3] soc: qcom: pbs: simplify locking with guard()
commit: 6187aaae71ec236163d96601b37216e110bf7554
[3/3] soc: qcom: smem_state: simplify locking with guard()
commit: cd3a3e60ebfe6f62ccf9d2164f6455e0b1ae1884
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: (subset) [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
2024-08-22 16:52 ` Krzysztof Kozlowski
2024-10-07 14:26 ` (subset) " Bjorn Andersson
@ 2024-12-26 18:26 ` Bjorn Andersson
2024-12-26 22:38 ` Bjorn Andersson
3 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2024-12-26 18:26 UTC (permalink / raw)
To: Konrad Dybcio, Andy Gross, linux-arm-msm, linux-kernel,
Krzysztof Kozlowski
Cc: stable
On Thu, 22 Aug 2024 18:48:51 +0200, Krzysztof Kozlowski wrote:
> If of_parse_phandle_with_args() succeeds, the OF node reference should
> be dropped, regardless of number of phandle arguments.
>
>
Applied, thanks!
[1/1] soc: qcom: smem_state: fix missing of_node_put in error path
commit: 70096b4990848229d0784c5e51dc3c7c072f1111
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: (subset) [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard()
2024-08-22 16:48 [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard() Krzysztof Kozlowski
` (2 preceding siblings ...)
2024-08-22 16:48 ` [PATCH 3/3] soc: qcom: smem_state: " Krzysztof Kozlowski
@ 2024-12-26 22:38 ` Bjorn Andersson
3 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2024-12-26 22:38 UTC (permalink / raw)
To: Konrad Dybcio, Andy Gross, linux-arm-msm, linux-kernel,
Krzysztof Kozlowski
On Thu, 22 Aug 2024 18:48:50 +0200, Krzysztof Kozlowski wrote:
> Simplify error handling (less gotos) over locks with guard().
>
>
Applied, thanks!
[1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard()
commit: 95fee3009461f4a65247db677f445fbd67776019
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: (subset) [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
` (2 preceding siblings ...)
2024-12-26 18:26 ` Bjorn Andersson
@ 2024-12-26 22:38 ` Bjorn Andersson
3 siblings, 0 replies; 9+ messages in thread
From: Bjorn Andersson @ 2024-12-26 22:38 UTC (permalink / raw)
To: Konrad Dybcio, Andy Gross, linux-arm-msm, linux-kernel,
Krzysztof Kozlowski
Cc: stable
On Thu, 22 Aug 2024 18:48:51 +0200, Krzysztof Kozlowski wrote:
> If of_parse_phandle_with_args() succeeds, the OF node reference should
> be dropped, regardless of number of phandle arguments.
>
>
Applied, thanks!
[1/1] soc: qcom: smem_state: fix missing of_node_put in error path
commit: 70096b4990848229d0784c5e51dc3c7c072f1111
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-12-26 22:39 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-22 16:48 [PATCH 1/3] soc: qcom: pmic_glink_altmode: simplify locking with guard() Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH] soc: qcom: smem_state: fix missing of_node_put in error path Krzysztof Kozlowski
2024-08-22 16:52 ` Krzysztof Kozlowski
2024-10-07 14:26 ` (subset) " Bjorn Andersson
2024-12-26 18:26 ` Bjorn Andersson
2024-12-26 22:38 ` Bjorn Andersson
2024-08-22 16:48 ` [PATCH 2/3] soc: qcom: pbs: simplify locking with guard() Krzysztof Kozlowski
2024-08-22 16:48 ` [PATCH 3/3] soc: qcom: smem_state: " Krzysztof Kozlowski
2024-12-26 22:38 ` (subset) [PATCH 1/3] soc: qcom: pmic_glink_altmode: " Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).