Message ID | 332d79312d2618c96adaa0f125ea033e49f0af5d.1580390127.git.amit.kucheria@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | thermal: tsens: Handle critical interrupts | expand |
On Thu 30 Jan 05:27 PST 2020, Amit Kucheria wrote: > We don't currently call put_device in case of successfully initialising > the device. > > Allow control to fall through so we can use same code for success and > error paths to put_device. > > As a part of this fixup, change devm_ioremap_resource to act on the same > device pointer as that used to allocate regmap memory. That ensures that > we are free to release op->dev after examining its resources. > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org> > --- > drivers/thermal/qcom/tsens-common.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c > index 1cbc5a6e5b4f..013750fff8b2 100644 > --- a/drivers/thermal/qcom/tsens-common.c > +++ b/drivers/thermal/qcom/tsens-common.c > @@ -602,7 +602,7 @@ int __init init_common(struct tsens_priv *priv) > /* DT with separate SROT and TM address space */ > priv->tm_offset = 0; > res = platform_get_resource(op, IORESOURCE_MEM, 1); > - srot_base = devm_ioremap_resource(&op->dev, res); > + srot_base = devm_ioremap_resource(dev, res); > if (IS_ERR(srot_base)) { > ret = PTR_ERR(srot_base); > goto err_put_device; > @@ -620,7 +620,7 @@ int __init init_common(struct tsens_priv *priv) > } > > res = platform_get_resource(op, IORESOURCE_MEM, 0); > - tm_base = devm_ioremap_resource(&op->dev, res); > + tm_base = devm_ioremap_resource(dev, res); > if (IS_ERR(tm_base)) { > ret = PTR_ERR(tm_base); > goto err_put_device; > @@ -687,8 +687,6 @@ int __init init_common(struct tsens_priv *priv) > tsens_enable_irq(priv); > tsens_debug_init(op); > > - return 0; > - > err_put_device: > put_device(&op->dev); > return ret; > -- > 2.20.1 >
diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c index 1cbc5a6e5b4f..013750fff8b2 100644 --- a/drivers/thermal/qcom/tsens-common.c +++ b/drivers/thermal/qcom/tsens-common.c @@ -602,7 +602,7 @@ int __init init_common(struct tsens_priv *priv) /* DT with separate SROT and TM address space */ priv->tm_offset = 0; res = platform_get_resource(op, IORESOURCE_MEM, 1); - srot_base = devm_ioremap_resource(&op->dev, res); + srot_base = devm_ioremap_resource(dev, res); if (IS_ERR(srot_base)) { ret = PTR_ERR(srot_base); goto err_put_device; @@ -620,7 +620,7 @@ int __init init_common(struct tsens_priv *priv) } res = platform_get_resource(op, IORESOURCE_MEM, 0); - tm_base = devm_ioremap_resource(&op->dev, res); + tm_base = devm_ioremap_resource(dev, res); if (IS_ERR(tm_base)) { ret = PTR_ERR(tm_base); goto err_put_device; @@ -687,8 +687,6 @@ int __init init_common(struct tsens_priv *priv) tsens_enable_irq(priv); tsens_debug_init(op); - return 0; - err_put_device: put_device(&op->dev); return ret;
We don't currently call put_device in case of successfully initialising the device. Allow control to fall through so we can use same code for success and error paths to put_device. As a part of this fixup, change devm_ioremap_resource to act on the same device pointer as that used to allocate regmap memory. That ensures that we are free to release op->dev after examining its resources. Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org> --- drivers/thermal/qcom/tsens-common.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)