> -----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)
