2023-10-27 04:02:54

by Jiapeng Chong

[permalink] [raw]
Subject: [PATCH] cxgb4: Fix missing error code in cxgb4_port_mirror_alloc()

The error code is missing in this code scenario, add the error code
'-EINVAL' to the return value 'ret'.

drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c:1525 cxgb4_port_mirror_alloc() warn: missing error code 'ret'.

Reported-by: Abaci Robot <[email protected]>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=7063
Signed-off-by: Jiapeng Chong <[email protected]>
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 2eb33a727bba..e59e199184f4 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -1522,6 +1522,7 @@ int cxgb4_port_mirror_alloc(struct net_device *dev)
mutex_lock(&pi->vi_mirror_mutex);
if (pi->viid_mirror) {
pi->vi_mirror_count++;
+ ret = -EINVAL;
goto out_unlock;
}

--
2.20.1.7.g153144c


2023-10-27 13:37:32

by Wojciech Drewek

[permalink] [raw]
Subject: Re: [PATCH] cxgb4: Fix missing error code in cxgb4_port_mirror_alloc()



On 27.10.2023 06:00, Jiapeng Chong wrote:
> The error code is missing in this code scenario, add the error code
> '-EINVAL' to the return value 'ret'.
>
> drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c:1525 cxgb4_port_mirror_alloc() warn: missing error code 'ret'.
>
> Reported-by: Abaci Robot <[email protected]>
> Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=7063
> Signed-off-by: Jiapeng Chong <[email protected]>
> ---
> drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> index 2eb33a727bba..e59e199184f4 100644
> --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
> @@ -1522,6 +1522,7 @@ int cxgb4_port_mirror_alloc(struct net_device *dev)
> mutex_lock(&pi->vi_mirror_mutex);
> if (pi->viid_mirror) {
> pi->vi_mirror_count++;
> + ret = -EINVAL;

I'm not sure we should return error here. This looks like we're adding a new subscriber to
the mirror action so the function should return 0 (ret is initialized to 0). viid_mirror exists,
we're just incrementing the count of its users.

> goto out_unlock;
> }
>