| From cb592b5b991242f6b50b748a5e5eeba600103b54 Mon Sep 17 00:00:00 2001 |
| From: Ido Schimmel <idosch@mellanox.com> |
| Date: Fri, 7 Feb 2020 19:26:28 +0200 |
| Subject: [PATCH] mlxsw: spectrum_dpipe: Add missing error path |
| |
| commit 3a99cbb6fa7bca1995586ec2dc21b0368aad4937 upstream. |
| |
| In case devlink_dpipe_entry_ctx_prepare() failed, release RTNL that was |
| previously taken and free the memory allocated by |
| mlxsw_sp_erif_entry_prepare(). |
| |
| Fixes: 2ba5999f009d ("mlxsw: spectrum: Add Support for erif table entries access") |
| Signed-off-by: Ido Schimmel <idosch@mellanox.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c |
| index 49933818c6f5..2dc0978428e6 100644 |
| --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c |
| +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c |
| @@ -215,7 +215,7 @@ mlxsw_sp_dpipe_table_erif_entries_dump(void *priv, bool counters_enabled, |
| start_again: |
| err = devlink_dpipe_entry_ctx_prepare(dump_ctx); |
| if (err) |
| - return err; |
| + goto err_ctx_prepare; |
| j = 0; |
| for (; i < rif_count; i++) { |
| struct mlxsw_sp_rif *rif = mlxsw_sp_rif_by_index(mlxsw_sp, i); |
| @@ -247,6 +247,7 @@ mlxsw_sp_dpipe_table_erif_entries_dump(void *priv, bool counters_enabled, |
| return 0; |
| err_entry_append: |
| err_entry_get: |
| +err_ctx_prepare: |
| rtnl_unlock(); |
| devlink_dpipe_entry_clear(&entry); |
| return err; |
| -- |
| 2.7.4 |
| |