Re: [PATCH] ASoC: cs35l56: Fix an unsigned comparison which can never be negative

From: Richard Fitzgerald
Date: Fri Mar 24 2023 - 06:30:13 EST


On 24/03/2023 02:23, Jiapeng Chong wrote:
The variable 'rv' is defined as unsigned type, so the following if
statement is invalid, we can modify the type of rv to int.
if (rv < 0) {
dev_err(cs35l56->dev, "irq: failed to get pm_runtime:
%d\n", rv);
goto err_unlock;
}

./sound/soc/codecs/cs35l56.c:333:5-7: WARNING: Unsigned expression compared with zero: rv < 0.

Reported-by: Abaci Robot <abaci@xxxxxxxxxxxxxxxxx>
Link: https://bugzilla.openanolis.cn/show_bug.cgi?id=4599
Signed-off-by: Jiapeng Chong <jiapeng.chong@xxxxxxxxxxxxxxxxx>
---
sound/soc/codecs/cs35l56.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/cs35l56.c b/sound/soc/codecs/cs35l56.c
index 90fc79b5666d..d97b465f0d3c 100644
--- a/sound/soc/codecs/cs35l56.c
+++ b/sound/soc/codecs/cs35l56.c
@@ -321,7 +321,9 @@ irqreturn_t cs35l56_irq(int irq, void *data)
struct cs35l56_private *cs35l56 = data;
unsigned int status1 = 0, status8 = 0, status20 = 0;
unsigned int mask1, mask8, mask20;
- unsigned int rv, val;
+ unsigned int val;
+ int rv;
+
irqreturn_t ret = IRQ_NONE;
if (!cs35l56->init_done)

Reviewed-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx>