From d3794059d62c01ddbbcc9ad754a75df29e66109f Mon Sep 17 00:00:00 2001 From: Igor Romanov Date: Mon, 30 Mar 2020 11:25:40 +0100 Subject: [PATCH] net/sfc/base: refactor filters cleanup in reconfigure Refactor the filters cleanup stage of the reconfigure function to make it clearer and allow for more convenient further changes. Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/base/ef10_filter.c | 44 ++++++++++++++++++------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/drivers/net/sfc/base/ef10_filter.c b/drivers/net/sfc/base/ef10_filter.c index 12802a3d13..74d06ecf57 100644 --- a/drivers/net/sfc/base/ef10_filter.c +++ b/drivers/net/sfc/base/ef10_filter.c @@ -1756,6 +1756,31 @@ fail1: } +static void +ef10_filter_remove_all_existing_filters( + __in efx_nic_t *enp) +{ + ef10_filter_table_t *table = enp->en_filter.ef_ef10_filter_table; + unsigned int i; + + for (i = 0; i < table->eft_unicst_filter_count; i++) { + ef10_filter_delete_auto(enp, + table->eft_unicst_filter_indexes[i]); + } + table->eft_unicst_filter_count = 0; + + for (i = 0; i < table->eft_mulcst_filter_count; i++) { + ef10_filter_delete_auto(enp, + table->eft_mulcst_filter_indexes[i]); + } + table->eft_mulcst_filter_count = 0; + + for (i = 0; i < table->eft_encap_filter_count; i++) { + ef10_filter_delete_auto(enp, + table->eft_encap_filter_indexes[i]); + } + table->eft_encap_filter_count = 0; +} /* * Reconfigure all filters. @@ -1789,24 +1814,7 @@ ef10_filter_reconfigure( * filters must be removed (ignore errors in case the MC * has rebooted, which removes hardware filters). */ - for (i = 0; i < table->eft_unicst_filter_count; i++) { - ef10_filter_delete_auto(enp, - table->eft_unicst_filter_indexes[i]); - } - table->eft_unicst_filter_count = 0; - - for (i = 0; i < table->eft_mulcst_filter_count; i++) { - ef10_filter_delete_auto(enp, - table->eft_mulcst_filter_indexes[i]); - } - table->eft_mulcst_filter_count = 0; - - for (i = 0; i < table->eft_encap_filter_count; i++) { - ef10_filter_delete_auto(enp, - table->eft_encap_filter_indexes[i]); - } - table->eft_encap_filter_count = 0; - + ef10_filter_remove_all_existing_filters(enp); return (0); } -- 2.20.1