Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1287349 > unrolled thread
| Started by | Luis Henriques <luis.henriques@canonical.com> |
|---|---|
| First post | 2015-12-09 11:20 +0100 |
| Last post | 2015-12-10 01:50 +0100 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure Luis Henriques <luis.henriques@canonical.com> - 2015-12-09 11:20 +0100
Re: [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2015-12-09 14:40 +0100
Re: [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure Luis Henriques <luis.henriques@canonical.com> - 2015-12-09 15:10 +0100
Re: [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2015-12-10 01:50 +0100
| From | Luis Henriques <luis.henriques@canonical.com> |
|---|---|
| Date | 2015-12-09 11:20 +0100 |
| Subject | [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure |
| Message-ID | <qDK0O-71Y-37@gated-at.bofh.it> |
3.16.7-ckt21 -stable review patch. If anyone has any objections, please let me know.
------------------
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
commit 824ead03b78403a21449cb7eb153a4344cd3b4c8 upstream.
During probe if the regulator could not be enabled, the error exit path
would still disable it. This could lead to unbalanced counter of
regulator enable/disable.
The patch moves code for getting and enabling the regulator from
exynos_map_dt_data() to probe function because it is really not a part
of getting Device Tree properties.
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on probe failure")
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
drivers/thermal/samsung/exynos_tmu.c | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
index efed4eedf47f..bd3ba217386e 100644
--- a/drivers/thermal/samsung/exynos_tmu.c
+++ b/drivers/thermal/samsung/exynos_tmu.c
@@ -558,27 +558,10 @@ static int exynos_map_dt_data(struct platform_device *pdev)
struct exynos_tmu_data *data = platform_get_drvdata(pdev);
struct exynos_tmu_platform_data *pdata;
struct resource res;
- int ret;
if (!data || !pdev->dev.of_node)
return -ENODEV;
- /*
- * Try enabling the regulator if found
- * TODO: Add regulator as an SOC feature, so that regulator enable
- * is a compulsory call.
- */
- data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
- if (!IS_ERR(data->regulator)) {
- ret = regulator_enable(data->regulator);
- if (ret) {
- dev_err(&pdev->dev, "failed to enable vtmu\n");
- return ret;
- }
- } else {
- dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
- }
-
data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl");
if (data->id < 0)
data->id = 0;
@@ -643,6 +626,22 @@ static int exynos_tmu_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, data);
mutex_init(&data->lock);
+ /*
+ * Try enabling the regulator if found
+ * TODO: Add regulator as an SOC feature, so that regulator enable
+ * is a compulsory call.
+ */
+ data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
+ if (!IS_ERR(data->regulator)) {
+ ret = regulator_enable(data->regulator);
+ if (ret) {
+ dev_err(&pdev->dev, "failed to enable vtmu\n");
+ return ret;
+ }
+ } else {
+ dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
+ }
+
ret = exynos_map_dt_data(pdev);
if (ret)
return ret;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Date | 2015-12-09 14:40 +0100 |
| Subject | Re: [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure |
| Message-ID | <qDN8l-xe-9@gated-at.bofh.it> |
| In reply to | #1287349 |
W dniu 09.12.2015 o 18:37, Luis Henriques pisze:
> 3.16.7-ckt21 -stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>
> commit 824ead03b78403a21449cb7eb153a4344cd3b4c8 upstream.
>
> During probe if the regulator could not be enabled, the error exit path
> would still disable it. This could lead to unbalanced counter of
> regulator enable/disable.
>
> The patch moves code for getting and enabling the regulator from
> exynos_map_dt_data() to probe function because it is really not a part
> of getting Device Tree properties.
>
> Acked-by: Lukasz Majewski <l.majewski@samsung.com>
> Tested-by: Lukasz Majewski <l.majewski@samsung.com>
> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on probe failure")
> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
> [ luis: backported to 3.16: adjusted context ]
> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
This patch shouldn't be backported before 4.2. It fixes a bug introduced
in 4.2: 5f09a5cbd14a.
For kernels <4.2 this bug does not exist but fortunately the patch looks
harmless. Anyway still for <4.2 I think it shouldn't be ported.
Best regards,
Krzysztof
> ---
> drivers/thermal/samsung/exynos_tmu.c | 33 ++++++++++++++++-----------------
> 1 file changed, 16 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> index efed4eedf47f..bd3ba217386e 100644
> --- a/drivers/thermal/samsung/exynos_tmu.c
> +++ b/drivers/thermal/samsung/exynos_tmu.c
> @@ -558,27 +558,10 @@ static int exynos_map_dt_data(struct platform_device *pdev)
> struct exynos_tmu_data *data = platform_get_drvdata(pdev);
> struct exynos_tmu_platform_data *pdata;
> struct resource res;
> - int ret;
>
> if (!data || !pdev->dev.of_node)
> return -ENODEV;
>
> - /*
> - * Try enabling the regulator if found
> - * TODO: Add regulator as an SOC feature, so that regulator enable
> - * is a compulsory call.
> - */
> - data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
> - if (!IS_ERR(data->regulator)) {
> - ret = regulator_enable(data->regulator);
> - if (ret) {
> - dev_err(&pdev->dev, "failed to enable vtmu\n");
> - return ret;
> - }
> - } else {
> - dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
> - }
> -
> data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl");
> if (data->id < 0)
> data->id = 0;
> @@ -643,6 +626,22 @@ static int exynos_tmu_probe(struct platform_device *pdev)
> platform_set_drvdata(pdev, data);
> mutex_init(&data->lock);
>
> + /*
> + * Try enabling the regulator if found
> + * TODO: Add regulator as an SOC feature, so that regulator enable
> + * is a compulsory call.
> + */
> + data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
> + if (!IS_ERR(data->regulator)) {
> + ret = regulator_enable(data->regulator);
> + if (ret) {
> + dev_err(&pdev->dev, "failed to enable vtmu\n");
> + return ret;
> + }
> + } else {
> + dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
> + }
> +
> ret = exynos_map_dt_data(pdev);
> if (ret)
> return ret;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Luis Henriques <luis.henriques@canonical.com> |
|---|---|
| Date | 2015-12-09 15:10 +0100 |
| Subject | Re: [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure |
| Message-ID | <qDNBn-Xy-9@gated-at.bofh.it> |
| In reply to | #1287495 |
On Wed, Dec 09, 2015 at 10:22:37PM +0900, Krzysztof Kozlowski wrote:
> W dniu 09.12.2015 o 18:37, Luis Henriques pisze:
> > 3.16.7-ckt21 -stable review patch. If anyone has any objections, please let me know.
> >
> > ------------------
> >
> > From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> >
> > commit 824ead03b78403a21449cb7eb153a4344cd3b4c8 upstream.
> >
> > During probe if the regulator could not be enabled, the error exit path
> > would still disable it. This could lead to unbalanced counter of
> > regulator enable/disable.
> >
> > The patch moves code for getting and enabling the regulator from
> > exynos_map_dt_data() to probe function because it is really not a part
> > of getting Device Tree properties.
> >
> > Acked-by: Lukasz Majewski <l.majewski@samsung.com>
> > Tested-by: Lukasz Majewski <l.majewski@samsung.com>
> > Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
> > Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> > Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on probe failure")
> > Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
> > [ luis: backported to 3.16: adjusted context ]
> > Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
>
> This patch shouldn't be backported before 4.2. It fixes a bug introduced
> in 4.2: 5f09a5cbd14a.
>
> For kernels <4.2 this bug does not exist but fortunately the patch looks
> harmless. Anyway still for <4.2 I think it shouldn't be ported.
>
> Best regards,
> Krzysztof
>
Thank you Krzysztof.
I understand that this fixes an issue with commit 5f09a5cbd14a ("thermal:
exynos: Disable the regulator on probe failure"), which was included in
4.2. However, since this commit was also tagged for stable, it has also
been backported to some stable kernels (at least 3.16.y-ckt and
3.19.y-ckt).
Would you agree that, for this reason, this patch is in fact applicable to
the 3.16 (and 3.19) kernel?
Cheers,
--
Luís
> > ---
> > drivers/thermal/samsung/exynos_tmu.c | 33 ++++++++++++++++-----------------
> > 1 file changed, 16 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
> > index efed4eedf47f..bd3ba217386e 100644
> > --- a/drivers/thermal/samsung/exynos_tmu.c
> > +++ b/drivers/thermal/samsung/exynos_tmu.c
> > @@ -558,27 +558,10 @@ static int exynos_map_dt_data(struct platform_device *pdev)
> > struct exynos_tmu_data *data = platform_get_drvdata(pdev);
> > struct exynos_tmu_platform_data *pdata;
> > struct resource res;
> > - int ret;
> >
> > if (!data || !pdev->dev.of_node)
> > return -ENODEV;
> >
> > - /*
> > - * Try enabling the regulator if found
> > - * TODO: Add regulator as an SOC feature, so that regulator enable
> > - * is a compulsory call.
> > - */
> > - data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
> > - if (!IS_ERR(data->regulator)) {
> > - ret = regulator_enable(data->regulator);
> > - if (ret) {
> > - dev_err(&pdev->dev, "failed to enable vtmu\n");
> > - return ret;
> > - }
> > - } else {
> > - dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
> > - }
> > -
> > data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl");
> > if (data->id < 0)
> > data->id = 0;
> > @@ -643,6 +626,22 @@ static int exynos_tmu_probe(struct platform_device *pdev)
> > platform_set_drvdata(pdev, data);
> > mutex_init(&data->lock);
> >
> > + /*
> > + * Try enabling the regulator if found
> > + * TODO: Add regulator as an SOC feature, so that regulator enable
> > + * is a compulsory call.
> > + */
> > + data->regulator = devm_regulator_get(&pdev->dev, "vtmu");
> > + if (!IS_ERR(data->regulator)) {
> > + ret = regulator_enable(data->regulator);
> > + if (ret) {
> > + dev_err(&pdev->dev, "failed to enable vtmu\n");
> > + return ret;
> > + }
> > + } else {
> > + dev_info(&pdev->dev, "Regulator node (vtmu) not found\n");
> > + }
> > +
> > ret = exynos_map_dt_data(pdev);
> > if (ret)
> > return ret;
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Date | 2015-12-10 01:50 +0100 |
| Subject | Re: [PATCH 3.16.y-ckt 059/126] thermal: exynos: Fix unbalanced regulator disable on probe failure |
| Message-ID | <qDXAK-7eK-9@gated-at.bofh.it> |
| In reply to | #1287513 |
On 09.12.2015 22:59, Luis Henriques wrote:
> On Wed, Dec 09, 2015 at 10:22:37PM +0900, Krzysztof Kozlowski wrote:
>> W dniu 09.12.2015 o 18:37, Luis Henriques pisze:
>>> 3.16.7-ckt21 -stable review patch. If anyone has any objections, please let me know.
>>>
>>> ------------------
>>>
>>> From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>>>
>>> commit 824ead03b78403a21449cb7eb153a4344cd3b4c8 upstream.
>>>
>>> During probe if the regulator could not be enabled, the error exit path
>>> would still disable it. This could lead to unbalanced counter of
>>> regulator enable/disable.
>>>
>>> The patch moves code for getting and enabling the regulator from
>>> exynos_map_dt_data() to probe function because it is really not a part
>>> of getting Device Tree properties.
>>>
>>> Acked-by: Lukasz Majewski <l.majewski@samsung.com>
>>> Tested-by: Lukasz Majewski <l.majewski@samsung.com>
>>> Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
>>> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>>> Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on probe failure")
>>> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
>>> [ luis: backported to 3.16: adjusted context ]
>>> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
>>
>> This patch shouldn't be backported before 4.2. It fixes a bug introduced
>> in 4.2: 5f09a5cbd14a.
>>
>> For kernels <4.2 this bug does not exist but fortunately the patch looks
>> harmless. Anyway still for <4.2 I think it shouldn't be ported.
>>
>> Best regards,
>> Krzysztof
>>
>
> Thank you Krzysztof.
>
> I understand that this fixes an issue with commit 5f09a5cbd14a ("thermal:
> exynos: Disable the regulator on probe failure"), which was included in
> 4.2. However, since this commit was also tagged for stable, it has also
> been backported to some stable kernels (at least 3.16.y-ckt and
> 3.19.y-ckt).
>
> Would you agree that, for this reason, this patch is in fact applicable to
> the 3.16 (and 3.19) kernel?
Ahh, you are right! The 5f09a5cbd14a was backported so this applies to
backporting as well.
Sorry for the noise.
Best regards,
Krzysztof
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web