* [PATCH] soundwire: qcom: use signed variable for error return
@ 2021-03-31 7:21 Vinod Koul
2021-03-31 14:41 ` Pierre-Louis Bossart
2021-03-31 16:24 ` Bjorn Andersson
0 siblings, 2 replies; 4+ messages in thread
From: Vinod Koul @ 2021-03-31 7:21 UTC (permalink / raw)
To: Srinivas Kandagatla
Cc: Vinod Koul, Bjorn Andersson, Bard Liao, Pierre-Louis Bossart,
Sanyog Kale, linux-arm-msm, alsa-devel, linux-kernel,
kernel test robot
We get warning for using a unsigned variable being compared to less than
zero. The comparison is correct as it checks for errors from previous
call to qcom_swrm_get_alert_slave_dev_num(), so we should use a signed
variable instead.
drivers/soundwire/qcom.c: qcom_swrm_irq_handler() warn: impossible
condition '(devnum < 0) => (0-255 < 0)'
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
drivers/soundwire/qcom.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index b08ecb9b418c..55ed133c6704 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -428,7 +428,7 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
struct qcom_swrm_ctrl *swrm = dev_id;
u32 value, intr_sts, intr_sts_masked, slave_status;
u32 i;
- u8 devnum = 0;
+ s8 devnum = 0;
int ret = IRQ_HANDLED;
swrm->reg_read(swrm, SWRM_INTERRUPT_STATUS, &intr_sts);
--
2.26.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] soundwire: qcom: use signed variable for error return
2021-03-31 7:21 [PATCH] soundwire: qcom: use signed variable for error return Vinod Koul
@ 2021-03-31 14:41 ` Pierre-Louis Bossart
2021-03-31 15:48 ` Vinod Koul
2021-03-31 16:24 ` Bjorn Andersson
1 sibling, 1 reply; 4+ messages in thread
From: Pierre-Louis Bossart @ 2021-03-31 14:41 UTC (permalink / raw)
To: Vinod Koul, Srinivas Kandagatla
Cc: Bjorn Andersson, Bard Liao, Sanyog Kale, linux-arm-msm,
alsa-devel, linux-kernel, kernel test robot
On 3/31/21 2:21 AM, Vinod Koul wrote:
> We get warning for using a unsigned variable being compared to less than
> zero. The comparison is correct as it checks for errors from previous
> call to qcom_swrm_get_alert_slave_dev_num(), so we should use a signed
> variable instead.
>
> drivers/soundwire/qcom.c: qcom_swrm_irq_handler() warn: impossible
> condition '(devnum < 0) => (0-255 < 0)'
>
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
> drivers/soundwire/qcom.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
> index b08ecb9b418c..55ed133c6704 100644
> --- a/drivers/soundwire/qcom.c
> +++ b/drivers/soundwire/qcom.c
> @@ -428,7 +428,7 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
> struct qcom_swrm_ctrl *swrm = dev_id;
> u32 value, intr_sts, intr_sts_masked, slave_status;
> u32 i;
> - u8 devnum = 0;
> + s8 devnum = 0;
it's not great to store negative error codes with s8. That works in this
specific case because the function only returns -EINVAL.
We actually have zero occurrences of s8 in the drivers/soundwire/ code.
> int ret = IRQ_HANDLED;
>
> swrm->reg_read(swrm, SWRM_INTERRUPT_STATUS, &intr_sts);
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] soundwire: qcom: use signed variable for error return
2021-03-31 14:41 ` Pierre-Louis Bossart
@ 2021-03-31 15:48 ` Vinod Koul
0 siblings, 0 replies; 4+ messages in thread
From: Vinod Koul @ 2021-03-31 15:48 UTC (permalink / raw)
To: Pierre-Louis Bossart
Cc: Srinivas Kandagatla, Bjorn Andersson, Bard Liao, Sanyog Kale,
linux-arm-msm, alsa-devel, linux-kernel, kernel test robot
On 31-03-21, 09:41, Pierre-Louis Bossart wrote:
>
>
> On 3/31/21 2:21 AM, Vinod Koul wrote:
> > We get warning for using a unsigned variable being compared to less than
> > zero. The comparison is correct as it checks for errors from previous
> > call to qcom_swrm_get_alert_slave_dev_num(), so we should use a signed
> > variable instead.
> >
> > drivers/soundwire/qcom.c: qcom_swrm_irq_handler() warn: impossible
> > condition '(devnum < 0) => (0-255 < 0)'
> >
> > Reported-by: kernel test robot <lkp@intel.com>
> > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > ---
> > drivers/soundwire/qcom.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
> > index b08ecb9b418c..55ed133c6704 100644
> > --- a/drivers/soundwire/qcom.c
> > +++ b/drivers/soundwire/qcom.c
> > @@ -428,7 +428,7 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
> > struct qcom_swrm_ctrl *swrm = dev_id;
> > u32 value, intr_sts, intr_sts_masked, slave_status;
> > u32 i;
> > - u8 devnum = 0;
> > + s8 devnum = 0;
>
> it's not great to store negative error codes with s8. That works in this
> specific case because the function only returns -EINVAL.
Yeah I did check EINVAL was the case which would work but in general I
agree that makes sense, I discussed with Srini on IRC and looks like I
havent posted v2, should hit the pipes shortly
--
~Vinod
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] soundwire: qcom: use signed variable for error return
2021-03-31 7:21 [PATCH] soundwire: qcom: use signed variable for error return Vinod Koul
2021-03-31 14:41 ` Pierre-Louis Bossart
@ 2021-03-31 16:24 ` Bjorn Andersson
1 sibling, 0 replies; 4+ messages in thread
From: Bjorn Andersson @ 2021-03-31 16:24 UTC (permalink / raw)
To: Vinod Koul
Cc: Srinivas Kandagatla, Bard Liao, Pierre-Louis Bossart,
Sanyog Kale, linux-arm-msm, alsa-devel, linux-kernel,
kernel test robot
On Wed 31 Mar 02:21 CDT 2021, Vinod Koul wrote:
> We get warning for using a unsigned variable being compared to less than
> zero. The comparison is correct as it checks for errors from previous
> call to qcom_swrm_get_alert_slave_dev_num(), so we should use a signed
> variable instead.
>
> drivers/soundwire/qcom.c: qcom_swrm_irq_handler() warn: impossible
> condition '(devnum < 0) => (0-255 < 0)'
>
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
> drivers/soundwire/qcom.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
> index b08ecb9b418c..55ed133c6704 100644
> --- a/drivers/soundwire/qcom.c
> +++ b/drivers/soundwire/qcom.c
> @@ -428,7 +428,7 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
> struct qcom_swrm_ctrl *swrm = dev_id;
> u32 value, intr_sts, intr_sts_masked, slave_status;
> u32 i;
> - u8 devnum = 0;
> + s8 devnum = 0;
At least in today's linux-next qcom_swrm_get_alert_slave_dev_num()
returns an int and the code only checks to see if this is negative. So
it seems like making this a full int ensures there's no truncation etc.
And at least as written today there's no need to initialize the
variable.
Regards,
Bjorn
> int ret = IRQ_HANDLED;
>
> swrm->reg_read(swrm, SWRM_INTERRUPT_STATUS, &intr_sts);
> --
> 2.26.3
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-03-31 16:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31 7:21 [PATCH] soundwire: qcom: use signed variable for error return Vinod Koul
2021-03-31 14:41 ` Pierre-Louis Bossart
2021-03-31 15:48 ` Vinod Koul
2021-03-31 16:24 ` 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).