Commit 987c658a authored by Edward Cree's avatar Edward Cree Committed by David S. Miller

sfc: fix ARFS expiry check on EF10

Owing to a missing conditional, the result of rps_may_expire_flow() was
 being ignored and filters were being removed even if we'd decided not to
 expire them.

Fixes: f8d62037 ("sfc: ARFS filter IDs")
Signed-off-by: default avatarEdward Cree <ecree@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ded8b9c7
...@@ -4784,8 +4784,9 @@ static bool efx_ef10_filter_rfs_expire_one(struct efx_nic *efx, u32 flow_id, ...@@ -4784,8 +4784,9 @@ static bool efx_ef10_filter_rfs_expire_one(struct efx_nic *efx, u32 flow_id,
* will set rule->filter_id to EFX_ARFS_FILTER_ID_PENDING, meaning that * will set rule->filter_id to EFX_ARFS_FILTER_ID_PENDING, meaning that
* the rule is not removed by efx_rps_hash_del() below. * the rule is not removed by efx_rps_hash_del() below.
*/ */
ret = efx_ef10_filter_remove_internal(efx, 1U << spec->priority, if (ret)
filter_idx, true) == 0; ret = efx_ef10_filter_remove_internal(efx, 1U << spec->priority,
filter_idx, true) == 0;
/* While we can't safely dereference rule (we dropped the lock), we can /* While we can't safely dereference rule (we dropped the lock), we can
* still test it for NULL. * still test it for NULL.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment