RE: [Intel-wired-lan] [PATCH iwl-net v2] ice: Fix incorrect LLDP filter assumptions
"Loktionov, Aleksandr" <[email protected]>
| Newsgroups | org.kernel.vger.netdev,org.osuosl.intel-wired-lan |
|---|---|
| Message-ID | <DS4PPF7551E6552D93A383AE955F62439C9E5DC2@DS4PPF7551E6552.namprd11.prod.outlook.com> |
> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf > Of Dave Ertman > Sent: Tuesday, August 11, 2026 8:11 PM > To: [email protected] > Cc: [email protected]; Kitszel, Przemyslaw > <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net v2] ice: Fix incorrect LLDP > filter assumptions > > In commit 4d5a1c4e6d49 ("ice: do not add LLDP-specific filter if not > necessary"), it was assumed that llpd_fltr_ctrl was a unique > application of a filter instance and the other command in the flow was > generic. > This is an incorrect assumption, they are both meant to add a filter > to handle LLDP packets and only varied in the actual AQ call made. > The newer AQ call was created to handle a special case in some NVM > images where a LLDP filter was already existent and the old AQ command > would generate an error if a new filter was attempted to be added. The > newer AQ command would detect this case and instead would add the > current target to the existing filter rule. > > Fix the flow so that the newer command is always used if available and > only fall back to the older command when that is the only solution. > > Also remove the obsolete state flag from the PF struct. > > Fixes: 4d5a1c4e6d49 ("ice: do not add LLDP-specific filter if not > necessary") > Signed-off-by: Dave Ertman <[email protected]> > Reviewed-by: Przemek Kitszel <[email protected]> > --- > drivers/net/ethernet/intel/ice/ice.h | 1 - > drivers/net/ethernet/intel/ice/ice_lib.c | 18 +++++------------- > 2 files changed, 5 insertions(+), 14 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice.h > b/drivers/net/ethernet/intel/ice/ice.h > index fc91b6665f90..7eaa3d1e78a5 100644 > --- a/drivers/net/ethernet/intel/ice/ice.h > +++ b/drivers/net/ethernet/intel/ice/ice.h > @@ -522,7 +522,6 @@ enum ice_pf_flags { > ICE_FLAG_MTU_CHANGED, > ICE_FLAG_GNSS, /* GNSS successfully > initialized */ > ICE_FLAG_DPLL, /* SyncE/PTP dplls > initialized */ > - ICE_FLAG_LLDP_AQ_FLTR, > ICE_PF_FLAGS_NBITS /* must be last */ > }; > > diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c > b/drivers/net/ethernet/intel/ice/ice_lib.c > index 8cdc4fda89e9..2fe91ff8119f 100644 > --- a/drivers/net/ethernet/intel/ice/ice_lib.c > +++ b/drivers/net/ethernet/intel/ice/ice_lib.c > @@ -2090,24 +2090,16 @@ void ice_vsi_cfg_sw_lldp(struct ice_vsi *vsi, > bool tx, bool create) > status = eth_fltr(vsi, ETH_P_LLDP, ICE_FLTR_TX, > ICE_DROP_PACKET); > } else { > - if (!test_bit(ICE_FLAG_LLDP_AQ_FLTR, pf->flags)) { > + status = ice_lldp_fltr_add_remove(&pf->hw, vsi, create); > + if (status == -EOPNOTSUPP) { > + /* If fltr_ctrl not supported, use legacy > + * add/remove command > + */ > status = eth_fltr(vsi, ETH_P_LLDP, ICE_FLTR_RX, > ICE_FWD_TO_VSI); > - if (!status || !create) > - goto report; > - > - dev_info(dev, > - "Failed to add generic LLDP Rx filter on > VSI %i error: %d, falling back to specialized AQ control\n", > - vsi->vsi_num, status); > } > - > - status = ice_lldp_fltr_add_remove(&pf->hw, vsi, create); > - if (!status) > - set_bit(ICE_FLAG_LLDP_AQ_FLTR, pf->flags); > - > } > > -report: > if (status) > dev_warn(dev, "Failed to %s %s LLDP rule on VSI %i > error: %d\n", > create ? "add" : "remove", tx ? "Tx" : "Rx", > -- > 2.55.0 Reviewed-by: Aleksandr Loktionov <[email protected]>