mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-27 07:34:46 +07:00
3af0f34290
Instead of having an efx->type->filter_rfs_insert() method, just use workitems with a worker function that calls efx->type->filter_insert(). The only user of this is efx_filter_rfs(), which now queues a call to efx_filter_rfs_work(). Similarly, efx_filter_rfs_expire() is now a worker function called on a new channel->filter_work work_struct, so the method efx->type->filter_rfs_expire_one() is no longer called in atomic context. We also add a new mutex efx->rps_mutex to protect the RPS state (efx-> rps_expire_channel, efx->rps_expire_index, and channel->rps_flow_id) so that the taking of efx->filter_lock can be moved to efx->type->filter_rfs_expire_one(). Thus, all filter table functions are now called in a sleepable context, allowing them to use sleeping locks in a future patch. Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
falcon | ||
bitfield.h | ||
ef10_regs.h | ||
ef10_sriov.c | ||
ef10_sriov.h | ||
ef10.c | ||
efx.c | ||
efx.h | ||
enum.h | ||
ethtool.c | ||
farch_regs.h | ||
farch.c | ||
filter.h | ||
io.h | ||
Kconfig | ||
Makefile | ||
mcdi_mon.c | ||
mcdi_pcol.h | ||
mcdi_port.c | ||
mcdi.c | ||
mcdi.h | ||
mtd.c | ||
net_driver.h | ||
nic.c | ||
nic.h | ||
ptp.c | ||
rx.c | ||
selftest.c | ||
selftest.h | ||
siena_sriov.c | ||
siena_sriov.h | ||
siena.c | ||
sriov.c | ||
sriov.h | ||
tx_tso.c | ||
tx.c | ||
tx.h | ||
vfdi.h | ||
workarounds.h |