2018-07-13 13:46:50

by Raju P.L.S.S.S.N

[permalink] [raw]
Subject: [PATCH] drivers: qcom: rpmh: fix unwanted error check for get_tcs_of_type()

From: "Raju P.L.S.S.S.N" <[email protected]>

The patch fixes the bug reported by Dan Carpenter.
It removes the unnecessary err check for ‘tcs’ reported by
static checker warning:

drivers/soc/qcom/rpmh-rsc.c:111 tcs_invalidate()
warn: 'tcs' isn't an ERR_PTR
See also:
drivers/soc/qcom/rpmh-rsc.c:178 get_tcs_for_msg() warn: 'tcs' isn't
an ERR_PTR
drivers/soc/qcom/rpmh-rsc.c:180 get_tcs_for_msg() warn: 'tcs' isn't
an ERR_PTR

https://www.spinics.net/lists/linux-soc/msg04624.html

Fixes: 48dbb0f02d34 ("drivers: qcom: rpmh-rsc: allow invalidation
of sleep/wake TCS")
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Raju P.L.S.S.S.N <[email protected]>
---
drivers/soc/qcom/rpmh-rsc.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c
index 098feb9..fefda0f 100644
--- a/drivers/soc/qcom/rpmh-rsc.c
+++ b/drivers/soc/qcom/rpmh-rsc.c
@@ -107,8 +107,6 @@ static int tcs_invalidate(struct rsc_drv *drv, int type)
struct tcs_group *tcs;

tcs = get_tcs_of_type(drv, type);
- if (IS_ERR(tcs))
- return PTR_ERR(tcs);

spin_lock(&tcs->lock);
if (bitmap_empty(tcs->slots, MAX_TCS_SLOTS)) {
@@ -174,9 +172,9 @@ static struct tcs_group *get_tcs_for_msg(struct rsc_drv *drv,
* TCSes before making an active state request.
*/
tcs = get_tcs_of_type(drv, type);
- if (msg->state == RPMH_ACTIVE_ONLY_STATE && IS_ERR(tcs)) {
+ if (msg->state == RPMH_ACTIVE_ONLY_STATE && !tcs->num_tcs) {
tcs = get_tcs_of_type(drv, WAKE_TCS);
- if (!IS_ERR(tcs)) {
+ if (tcs->num_tcs) {
ret = rpmh_rsc_invalidate(drv);
if (ret)
return ERR_PTR(ret);
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project



2018-07-13 15:31:13

by Lina Iyer

[permalink] [raw]
Subject: Re: [PATCH] drivers: qcom: rpmh: fix unwanted error check for get_tcs_of_type()

+ Dan

On Fri, Jul 13 2018 at 07:46 -0600, Raju P L S S S N wrote:
>From: "Raju P.L.S.S.S.N" <[email protected]>
>
>The patch fixes the bug reported by Dan Carpenter.
>It removes the unnecessary err check for ‘tcs’ reported by
>static checker warning:
>
>drivers/soc/qcom/rpmh-rsc.c:111 tcs_invalidate()
>warn: 'tcs' isn't an ERR_PTR
>See also:
>drivers/soc/qcom/rpmh-rsc.c:178 get_tcs_for_msg() warn: 'tcs' isn't
>an ERR_PTR
>drivers/soc/qcom/rpmh-rsc.c:180 get_tcs_for_msg() warn: 'tcs' isn't
>an ERR_PTR
>
>https://www.spinics.net/lists/linux-soc/msg04624.html
>
>Fixes: 48dbb0f02d34 ("drivers: qcom: rpmh-rsc: allow invalidation
>of sleep/wake TCS")
>Reported-by: Dan Carpenter <[email protected]>
>Signed-off-by: Raju P.L.S.S.S.N <[email protected]>
>---
> drivers/soc/qcom/rpmh-rsc.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c
>index 098feb9..fefda0f 100644
>--- a/drivers/soc/qcom/rpmh-rsc.c
>+++ b/drivers/soc/qcom/rpmh-rsc.c
>@@ -107,8 +107,6 @@ static int tcs_invalidate(struct rsc_drv *drv, int type)
> struct tcs_group *tcs;
>
> tcs = get_tcs_of_type(drv, type);
>- if (IS_ERR(tcs))
>- return PTR_ERR(tcs);
>
> spin_lock(&tcs->lock);
> if (bitmap_empty(tcs->slots, MAX_TCS_SLOTS)) {
>@@ -174,9 +172,9 @@ static struct tcs_group *get_tcs_for_msg(struct rsc_drv *drv,
> * TCSes before making an active state request.
> */
> tcs = get_tcs_of_type(drv, type);
>- if (msg->state == RPMH_ACTIVE_ONLY_STATE && IS_ERR(tcs)) {
>+ if (msg->state == RPMH_ACTIVE_ONLY_STATE && !tcs->num_tcs) {
> tcs = get_tcs_of_type(drv, WAKE_TCS);
>- if (!IS_ERR(tcs)) {
>+ if (tcs->num_tcs) {
> ret = rpmh_rsc_invalidate(drv);
> if (ret)
> return ERR_PTR(ret);
>--
>The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
>

2018-07-18 17:09:44

by Lina Iyer

[permalink] [raw]
Subject: Re: [PATCH] drivers: qcom: rpmh: fix unwanted error check for get_tcs_of_type()

On Fri, Jul 13 2018 at 07:46 -0600, Raju P L S S S N wrote:
>From: "Raju P.L.S.S.S.N" <[email protected]>
>
>The patch fixes the bug reported by Dan Carpenter.
>It removes the unnecessary err check for ‘tcs’ reported by
>static checker warning:
>
>drivers/soc/qcom/rpmh-rsc.c:111 tcs_invalidate()
>warn: 'tcs' isn't an ERR_PTR
>See also:
>drivers/soc/qcom/rpmh-rsc.c:178 get_tcs_for_msg() warn: 'tcs' isn't
>an ERR_PTR
>drivers/soc/qcom/rpmh-rsc.c:180 get_tcs_for_msg() warn: 'tcs' isn't
>an ERR_PTR
>
>https://www.spinics.net/lists/linux-soc/msg04624.html
>
>Fixes: 48dbb0f02d34 ("drivers: qcom: rpmh-rsc: allow invalidation
>of sleep/wake TCS")
>Reported-by: Dan Carpenter <[email protected]>
>Signed-off-by: Raju P.L.S.S.S.N <[email protected]>
Reviewed-by: Lina Iyer <[email protected]>

>---
> drivers/soc/qcom/rpmh-rsc.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c
>index 098feb9..fefda0f 100644
>--- a/drivers/soc/qcom/rpmh-rsc.c
>+++ b/drivers/soc/qcom/rpmh-rsc.c
>@@ -107,8 +107,6 @@ static int tcs_invalidate(struct rsc_drv *drv, int type)
> struct tcs_group *tcs;
>
> tcs = get_tcs_of_type(drv, type);
>- if (IS_ERR(tcs))
>- return PTR_ERR(tcs);
>
> spin_lock(&tcs->lock);
> if (bitmap_empty(tcs->slots, MAX_TCS_SLOTS)) {
>@@ -174,9 +172,9 @@ static struct tcs_group *get_tcs_for_msg(struct rsc_drv *drv,
> * TCSes before making an active state request.
> */
> tcs = get_tcs_of_type(drv, type);
>- if (msg->state == RPMH_ACTIVE_ONLY_STATE && IS_ERR(tcs)) {
>+ if (msg->state == RPMH_ACTIVE_ONLY_STATE && !tcs->num_tcs) {
> tcs = get_tcs_of_type(drv, WAKE_TCS);
>- if (!IS_ERR(tcs)) {
>+ if (tcs->num_tcs) {
> ret = rpmh_rsc_invalidate(drv);
> if (ret)
> return ERR_PTR(ret);
>--
>The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
>