2021-06-04 10:23:57

by Yang Li

[permalink] [raw]
Subject: [PATCH 1/2] NTB: perf: Fix an error code in perf_setup_inbuf()

When the function IS_ALIGNED() returns false, the value of ret is 0.
So, we set ret to -ENOMEM to indicate this error.

Clean up smatch warning:
drivers/ntb/test/ntb_perf.c:602 perf_setup_inbuf() warn: missing error
code 'ret'.

Reported-by: Abaci Robot <[email protected]>
Signed-off-by: Yang Li <[email protected]>
---
drivers/ntb/test/ntb_perf.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c
index 89df135..c20b375 100644
--- a/drivers/ntb/test/ntb_perf.c
+++ b/drivers/ntb/test/ntb_perf.c
@@ -598,6 +598,7 @@ static int perf_setup_inbuf(struct perf_peer *peer)
return -ENOMEM;
}
if (!IS_ALIGNED(peer->inbuf_xlat, xlat_align)) {
+ ret = -ENOMEM;
dev_err(&perf->ntb->dev, "Unaligned inbuf allocated\n");
goto err_free_inbuf;
}
--
1.8.3.1


2021-06-05 18:08:11

by Serge Semin

[permalink] [raw]
Subject: Re: [PATCH 1/2] NTB: perf: Fix an error code in perf_setup_inbuf()

Hello Yang.

On Fri, Jun 04, 2021 at 06:20:50PM +0800, Yang Li wrote:
> When the function IS_ALIGNED() returns false, the value of ret is 0.
> So, we set ret to -ENOMEM to indicate this error.
>
> Clean up smatch warning:
> drivers/ntb/test/ntb_perf.c:602 perf_setup_inbuf() warn: missing error
> code 'ret'.

Great catch! Thanks for posing the fix. Indeed ret would zero in case of
unaligned buffer allocation. Though such situation is very improbable.
A tiny nitpick below.

>
> Reported-by: Abaci Robot <[email protected]>
> Signed-off-by: Yang Li <[email protected]>
> ---
> drivers/ntb/test/ntb_perf.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c
> index 89df135..c20b375 100644
> --- a/drivers/ntb/test/ntb_perf.c
> +++ b/drivers/ntb/test/ntb_perf.c
> @@ -598,6 +598,7 @@ static int perf_setup_inbuf(struct perf_peer *peer)
> return -ENOMEM;
> }
> if (!IS_ALIGNED(peer->inbuf_xlat, xlat_align)) {

> + ret = -ENOMEM;

I'd set -EINVAL here. In this case we do have enough memory, but the
base address is unaligned in a way the NTB hw requires. After fixing
that feel free to add:
Reviewed-by: Serge Semin <[email protected]>

-Sergey

> dev_err(&perf->ntb->dev, "Unaligned inbuf allocated\n");
> goto err_free_inbuf;
> }
> --
> 1.8.3.1
>
> --
> You received this message because you are subscribed to the Google Groups "linux-ntb" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/msgid/linux-ntb/1622802051-43464-1-git-send-email-yang.lee%40linux.alibaba.com.