Re: [PATCH net] bnge: skip dev_addr when building the VNIC unicast list
From: Paolo Abeni
Date: Tue Oct 13 2026 - 06:08:37 EST
On 10/6/26 16:19, Vikas Gupta wrote:
The default VNIC programs the device's MAC as L2 filter 0 inFTR, redirecting this to net-next, due to Linus guidance for smaller
bnge_init_chip() via bnge_hwrm_set_vnic_filter(bn, 0, 0, dev_addr).
bnge_cfg_rx_mode() then walks dev->uc and programs each unicast
address as a further L2 filter, without excluding dev_addr.
Skip dev_addr when building uc_list, since it is already installed as
filter 0. As dev_addr now takes neither a uc_list slot nor an
l2_filters[] slot, count only the non-dev_addr entries for the
uc_list overflow check too, otherwise an input such as
{dev_addr, A, B, C} would needlessly fall back to promiscuous mode
even though A, B and C fit in exact-match filters.
bnge_uc_list_updated() applies the same skip and count so the
change detection stays consistent and does not loop.
This issue was caught by Sashiko (nipa).
Tested on Thor Ultra device.
Fixes: 9afad4a17174 ("bng_en: Configure default VNIC")
Signed-off-by: Vikas Gupta <vikas.gupta@xxxxxxxxxxxx>
Reviewed-by: Dharmender Garg <dharmender.garg@xxxxxxxxxxxx>
RCs and the above giving AFAICS some perf improvement in corner-cases
over the original code dating back to its introduction.
/P