On Wed, Jul 24, 2024 at 10:14:19AM -0600, Ahmed Zaki wrote: ...
> > > +/** > > > + * iavf_fdir_del_fltr - delete a flow director filter from the list > > > + * @adapter: pointer to the VF adapter structure > > > + * @loc: location to delete. > > > + * > > > + * Return: 0 on success or negative errno on failure. > > > + */ > > > +int iavf_fdir_del_fltr(struct iavf_adapter *adapter, u32 loc) > > > +{ > > > + struct iavf_fdir_fltr *fltr = NULL; > > > + int err = 0; > > > + > > > + spin_lock_bh(&adapter->fdir_fltr_lock); > > > + fltr = iavf_find_fdir_fltr(adapter, loc); > > > + > > > + if (fltr) { > > > + if (fltr->state == IAVF_FDIR_FLTR_ACTIVE) { > > > + fltr->state = IAVF_FDIR_FLTR_DEL_REQUEST; > > > + } else if (fltr->state == IAVF_FDIR_FLTR_INACTIVE) { > > > + list_del(&fltr->list); > > > + kfree(fltr); > > > + adapter->fdir_active_fltr--; > > > + fltr = NULL; > > > + } else { > > > + err = -EBUSY; > > > + } > > > + } else if (adapter->fdir_active_fltr) { > > > + err = -EINVAL; > > > + } > > > + > > > + if (fltr && fltr->state == IAVF_FDIR_FLTR_DEL_REQUEST) > > > + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DEL_FDIR_FILTER); > > > > It seems that prior to this change the condition and call to > > iavf_schedule_aq_request were not protected by fdir_fltr_lock, and now they > > are. If so, is this change intentional. > > > > yes it is, fltr is member of the list that should be protected by the > spinlock. Thanks, I would suggest moving this into a separate patch: changing locking is a bit different to refactoring. Or, if not, at least mentioning it in the patch description.