From: Igor Romanov Date: Mon, 30 Mar 2020 10:25:40 +0000 (+0100) Subject: net/sfc/base: refactor filters cleanup in reconfigure X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=d3794059d62c01ddbbcc9ad754a75df29e66109f;p=dpdk.git 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 --- 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); }