sfc: pass the correctly bogus filter_id to rps_may_expire_flow()
authorEdward Cree <ecree@solarflare.com>
Fri, 13 Apr 2018 18:17:49 +0000 (19:17 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 14 Apr 2018 19:39:52 +0000 (15:39 -0400)
When we inserted an ARFS filter for ndo_rx_flow_steer(), we didn't know
 what the filter ID would be, so we just returned 0.  Thus, we must also
 pass 0 as the filter ID when calling rps_may_expire_flow() for it, and
 rely on the flow_id to identify what we're talking about.

Fixes: 3af0f34290f6 ("sfc: replace asynchronous filter operations")
Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ef10.c
drivers/net/ethernet/sfc/farch.c

index 50daad0a14823f44b118881af1e92c00c04ab618..36f24c7e553a32f1a3aab6aa140c8e0775583401 100644 (file)
@@ -4776,8 +4776,7 @@ static bool efx_ef10_filter_rfs_expire_one(struct efx_nic *efx, u32 flow_id,
                goto out_unlock;
        }
 
-       if (!rps_may_expire_flow(efx->net_dev, spec->dmaq_id,
-                                flow_id, filter_idx)) {
+       if (!rps_may_expire_flow(efx->net_dev, spec->dmaq_id, flow_id, 0)) {
                ret = false;
                goto out_unlock;
        }
index 4a19c7efdf8d6c3cb20c4f5a27f9434f1fdd6211..7174ef5e5c5e310ed83c362a81df58a94af7bdc2 100644 (file)
@@ -2912,7 +2912,7 @@ bool efx_farch_filter_rfs_expire_one(struct efx_nic *efx, u32 flow_id,
        if (test_bit(index, table->used_bitmap) &&
            table->spec[index].priority == EFX_FILTER_PRI_HINT &&
            rps_may_expire_flow(efx->net_dev, table->spec[index].dmaq_id,
-                               flow_id, index)) {
+                               flow_id, 0)) {
                efx_farch_filter_table_clear_entry(efx, table, index);
                ret = true;
        }