mirror-linux/drivers/net/ethernet/sfc
Alejandro Lucero 67c3b611d9 sfc: disable softirqs for ptp TX
Sending a PTP packet can imply to use the normal TX driver datapath but
invoked from the driver's ptp worker. The kernel generic TX code
disables softirqs and preemption before calling specific driver TX code,
but the ptp worker does not. Although current ptp driver functionality
does not require it, there are several reasons for doing so:

   1) The invoked code is always executed with softirqs disabled for non
      PTP packets.
   2) Better if a ptp packet transmission is not interrupted by softirq
      handling which could lead to high latencies.
   3) netdev_xmit_more used by the TX code requires preemption to be
      disabled.

Indeed a solution for dealing with kernel preemption state based on static
kernel configuration is not possible since the introduction of dynamic
preemption level configuration at boot time using the static calls
functionality.

Fixes: f79c957a0b ("drivers: net: sfc: use netdev_xmit_more helper")
Signed-off-by: Alejandro Lucero <alejandro.lucero-palau@amd.com>
Link: https://lore.kernel.org/r/20220726064504.49613-1-alejandro.lucero-palau@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-07-27 18:20:43 -07:00
..
falcon net: allow gso_max_size to exceed 65536 2022-05-16 10:18:55 +01:00
siena sfc/siena: fix wrong tx channel offset with efx_separate_tx_channels 2022-06-01 17:47:17 -07:00
Kconfig sfc/siena: Make MCDI logging support specific for Siena 2022-05-12 16:49:30 -07:00
Makefile sfc: Add a basic Siena module 2022-05-10 15:38:15 -07:00
bitfield.h
ef10.c sfc: fix kernel panic when creating VF 2022-07-14 12:46:56 +02:00
ef10_regs.h
ef10_sriov.c sfc: fix use after free when disabling sriov 2022-07-13 19:42:09 -07:00
ef10_sriov.h
ef100.c sfc: add EF100 VF support via a write to sriov_numvfs 2022-04-29 18:43:01 -07:00
ef100.h
ef100_ethtool.c ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
ef100_ethtool.h
ef100_netdev.c
ef100_netdev.h
ef100_nic.c net: allow gso_max_size to exceed 65536 2022-05-16 10:18:55 +01:00
ef100_nic.h
ef100_regs.h
ef100_rx.c
ef100_rx.h
ef100_sriov.c sfc: add EF100 VF support via a write to sriov_numvfs 2022-04-29 18:43:01 -07:00
ef100_sriov.h sfc: add EF100 VF support via a write to sriov_numvfs 2022-04-29 18:43:01 -07:00
ef100_tx.c
ef100_tx.h
efx.c net: make drivers set the TSO limit not the GSO limit 2022-05-06 12:07:56 +01:00
efx.h sfc: Remove duplicate definition of efx_xmit_done 2022-04-12 12:13:30 +02:00
efx_channels.c sfc: fix wrong tx channel offset with efx_separate_tx_channels 2022-05-29 12:12:53 +01:00
efx_channels.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-05-12 16:15:30 -07:00
efx_common.c sfc: Remove global definition of efx_reset_type_names 2022-04-12 12:13:30 +02:00
efx_common.h
enum.h
ethtool.c ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
ethtool_common.c
ethtool_common.h
farch_regs.h
filter.h
io.h
mcdi.c sfc: extend the locking on mcdi->seqno 2022-03-03 14:11:58 +00:00
mcdi.h
mcdi_filters.c
mcdi_filters.h
mcdi_functions.c
mcdi_functions.h
mcdi_mon.c
mcdi_pcol.h sfc: Fix spelling mistake "writting" -> "writing" 2022-04-12 09:34:05 +02:00
mcdi_port.c
mcdi_port.h
mcdi_port_common.c ethernet/sfc: remove redundant rc variable 2022-01-04 12:41:41 +00:00
mcdi_port_common.h
mtd.c
net_driver.h sfc: fix considering that all channels have TX queues 2022-05-29 12:12:53 +01:00
nic.c
nic.h sfc: Disable Siena support 2022-05-04 11:18:08 +01:00
nic_common.h sfc: The size of the RX recycle ring should be more flexible 2022-02-01 20:34:59 -08:00
ptp.c sfc: disable softirqs for ptp TX 2022-07-27 18:20:43 -07:00
ptp.h net: sfc: fix memory leak due to ptp channel 2022-05-09 10:01:48 +01:00
rx.c bpf: Let bpf_warn_invalid_xdp_action() report more info 2021-12-13 22:28:27 +01:00
rx_common.c sfc: Do not free an empty page_ring 2022-04-04 12:53:52 +01:00
rx_common.h sfc: The size of the RX recycle ring should be more flexible 2022-02-01 20:34:59 -08:00
selftest.c
selftest.h
sriov.c
sriov.h
tx.c sfc: use hardware tx timestamps for more than PTP 2022-04-08 14:43:10 -07:00
tx.h
tx_common.c net: allow gso_max_size to exceed 65536 2022-05-16 10:18:55 +01:00
tx_common.h
tx_tso.c
vfdi.h
workarounds.h