> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of 
> Aleksandr Loktionov
> Sent: 27 March 2026 12:53
> To: [email protected]; Nguyen, Anthony L 
> <[email protected]>; Loktionov, Aleksandr 
> <[email protected]>
> Cc: [email protected]; Szycik, Marcin <[email protected]>
> Subject: [Intel-wired-lan] [PATCH net] ice: fix setting promisc mode while 
> adding VID filter
>
> From: Marcin Szycik <[email protected]>
>
> There are at least two paths through which VSI promiscuous mode can be 
> independently configured via ice_fltr_set_vsi_promisc():
> - ice_vlan_rx_add_vid() (netdev op)
> - ice_service_task() -> ... -> ice_set_promisc()
>
> Both paths may try to program promiscuous mode concurrently. One such 
> scenario is:
>
> 1. Add ice netdev to bond
> 2. Add the bond netdev to bridge
> 3. ice netdev enters allmulticast mode (IFF_ALLMULTI) 4. Service task 
> programs promisc mode filter 5. Bridge -> bond calls ice_vlan_rx_add_vid()
>
> Crucially, ice_vlan_rx_add_vid() fails if ice_fltr_set_vsi_promisc() returns 
> any error, including -EEXIST. This causes VLAN filtering setup to fail on the 
> bond interface. ice_set_promisc() already handles -EEXIST correctly.
>
> Fix by adding the same -EEXIST check to ice_vlan_rx_add_vid(): if the promisc 
> filter is already programmed, continue without returning error.
>
> Fixes: 1273f89578f2 ("ice: Fix broken IFF_ALLMULTI handling")
> Cc: [email protected]
> Signed-off-by: Marcin Szycik <[email protected]>
> Signed-off-by: Aleksandr Loktionov <[email protected]>
> ---
>
> drivers/net/ethernet/intel/ice/ice_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)

Reply via email to