2022-04-05 02:09:52

by Tom Rix

[permalink] [raw]
Subject: [PATCH] mlxsw: spectrum_router: simplify list unwinding

The setting of i here
err_nexthop6_group_get:
i = nrt6;
Is redundant, i is already nrt6. So remove
this statement.

The for loop for the unwinding
err_rt6_create:
for (i--; i >= 0; i--) {
Is equivelent to
for (; i > 0; i--) {

Two consecutive labels can be reduced to one.

Signed-off-by: Tom Rix <[email protected]>
---
.../ethernet/mellanox/mlxsw/spectrum_router.c | 20 ++++++++-----------
1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 79deb19e3a19..79fd486e29e3 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -7010,7 +7010,7 @@ mlxsw_sp_fib6_entry_nexthop_add(struct mlxsw_sp *mlxsw_sp,
mlxsw_sp_rt6 = mlxsw_sp_rt6_create(rt_arr[i]);
if (IS_ERR(mlxsw_sp_rt6)) {
err = PTR_ERR(mlxsw_sp_rt6);
- goto err_rt6_create;
+ goto err_rt6_unwind;
}

list_add_tail(&mlxsw_sp_rt6->list, &fib6_entry->rt6_list);
@@ -7019,14 +7019,12 @@ mlxsw_sp_fib6_entry_nexthop_add(struct mlxsw_sp *mlxsw_sp,

err = mlxsw_sp_nexthop6_group_update(mlxsw_sp, op_ctx, fib6_entry);
if (err)
- goto err_nexthop6_group_update;
+ goto err_rt6_unwind;

return 0;

-err_nexthop6_group_update:
- i = nrt6;
-err_rt6_create:
- for (i--; i >= 0; i--) {
+err_rt6_unwind:
+ for (; i > 0; i--) {
fib6_entry->nrt6--;
mlxsw_sp_rt6 = list_last_entry(&fib6_entry->rt6_list,
struct mlxsw_sp_rt6, list);
@@ -7154,7 +7152,7 @@ mlxsw_sp_fib6_entry_create(struct mlxsw_sp *mlxsw_sp,
mlxsw_sp_rt6 = mlxsw_sp_rt6_create(rt_arr[i]);
if (IS_ERR(mlxsw_sp_rt6)) {
err = PTR_ERR(mlxsw_sp_rt6);
- goto err_rt6_create;
+ goto err_rt6_unwind;
}
list_add_tail(&mlxsw_sp_rt6->list, &fib6_entry->rt6_list);
fib6_entry->nrt6++;
@@ -7162,7 +7160,7 @@ mlxsw_sp_fib6_entry_create(struct mlxsw_sp *mlxsw_sp,

err = mlxsw_sp_nexthop6_group_get(mlxsw_sp, fib6_entry);
if (err)
- goto err_nexthop6_group_get;
+ goto err_rt6_unwind;

err = mlxsw_sp_nexthop_group_vr_link(fib_entry->nh_group,
fib_node->fib);
@@ -7181,10 +7179,8 @@ mlxsw_sp_fib6_entry_create(struct mlxsw_sp *mlxsw_sp,
mlxsw_sp_nexthop_group_vr_unlink(fib_entry->nh_group, fib_node->fib);
err_nexthop_group_vr_link:
mlxsw_sp_nexthop6_group_put(mlxsw_sp, fib_entry);
-err_nexthop6_group_get:
- i = nrt6;
-err_rt6_create:
- for (i--; i >= 0; i--) {
+err_rt6_unwind:
+ for (; i > 0; i--) {
fib6_entry->nrt6--;
mlxsw_sp_rt6 = list_last_entry(&fib6_entry->rt6_list,
struct mlxsw_sp_rt6, list);
--
2.27.0


2022-04-05 03:18:08

by Ido Schimmel

[permalink] [raw]
Subject: Re: [PATCH] mlxsw: spectrum_router: simplify list unwinding

On Sat, Apr 02, 2022 at 08:15:16AM -0400, Tom Rix wrote:
> The setting of i here
> err_nexthop6_group_get:
> i = nrt6;
> Is redundant, i is already nrt6. So remove
> this statement.
>
> The for loop for the unwinding
> err_rt6_create:
> for (i--; i >= 0; i--) {
> Is equivelent to
> for (; i > 0; i--) {
>
> Two consecutive labels can be reduced to one.
>
> Signed-off-by: Tom Rix <[email protected]>

For net-next:

Reviewed-by: Ido Schimmel <[email protected]>

2022-04-06 13:34:44

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] mlxsw: spectrum_router: simplify list unwinding

On Sun, 3 Apr 2022 16:10:19 +0300 Ido Schimmel wrote:
> On Sat, Apr 02, 2022 at 08:15:16AM -0400, Tom Rix wrote:
> > The setting of i here
> > err_nexthop6_group_get:
> > i = nrt6;
> > Is redundant, i is already nrt6. So remove
> > this statement.
> >
> > The for loop for the unwinding
> > err_rt6_create:
> > for (i--; i >= 0; i--) {
> > Is equivelent to
> > for (; i > 0; i--) {
> >
> > Two consecutive labels can be reduced to one.
> >
> > Signed-off-by: Tom Rix <[email protected]>
>
> For net-next:
>
> Reviewed-by: Ido Schimmel <[email protected]>

Now 6f2f36e5f932 ("mlxsw: spectrum_router: simplify list unwinding")
Thanks!