1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net
Vladimir Oltean a93580a02d net: enetc: fix TX ring interrupt storm
The blamed commit introduced a bit in the TX software buffer descriptor
structure for determining whether a BD is final or not; we rearm the TX
interrupt vector for every frame (hence final BD) transmitted.

But there is a problem with the patch: it replaced a condition whose
expression is a bool which was evaluated at the beginning of the "while"
loop with a bool expression that is evaluated on the spot: tx_swbd->is_eof.

The problem with the latter expression is that the tx_swbd has already
been incremented at that stage, so the tx_swbd->is_eof check is in fact
with the _next_ software BD. Which is _not_ final.

The effect is that the CPU is in 100% load with ksoftirqd because it
does not acknowledge the TX interrupt, so the handler keeps getting
called again and again.

The fix is to restore the code structure, and keep the local bool is_eof
variable, just to assign it the tx_swbd->is_eof value instead of
!!tx_swbd->skb.

Fixes: d504498d2e ("net: enetc: add a dedicated is_eof bit in the TX software BD")
Reported-by: Alex Marginean <alexandru.marginean@nxp.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Link: https://lore.kernel.org/r/20210409192759.3895104-1-olteanv@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-04-09 18:17:12 -07:00
..
appletalk
arcnet net: arcnet: com20020 fix error handling 2021-03-14 14:17:48 -07:00
bonding net: bonding: remove repeated word 2021-03-30 16:56:39 -07:00
caif TTY/Serial driver changes for 5.12-rc1 2021-02-20 21:28:04 -08:00
can can: mcp251xfd: mcp251xfd_regmap_crc_read(): work around broken CRC on TBC register 2021-04-07 09:31:28 +02:00
dsa net: mscc: ocelot: remove redundant dev_err call in vsc9959_mdio_bus_alloc() 2021-03-29 13:16:44 -07:00
ethernet net: enetc: fix TX ring interrupt storm 2021-04-09 18:17:12 -07:00
fddi net: fddi: skfp: Mundane typo fixes throughout the file smt.h 2021-03-10 15:42:22 -08:00
fjes
hamradio module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
hippi
hyperv net: remove the new_ifindex argument from dev_change_net_namespace 2021-04-07 14:43:28 -07:00
ieee802154 ieee802154: hwsim: remove redundant initialization of variable res 2021-03-29 16:23:08 -07:00
ipa net: ipa: remove repeated words 2021-03-30 16:56:39 -07:00
ipvlan ipvlan: remove h from printk format specifier 2021-01-28 17:47:33 -08:00
mdio net: mdio: Remove redundant dev_err call in mdio_mux_iproc_probe() 2021-03-29 13:16:44 -07:00
mhi net: mhi: remove pointless conditional before kfree_skb() 2021-03-30 13:47:28 -07:00
netdevsim netdevsim: remove unneeded semicolon 2021-04-06 16:27:33 -07:00
pcs net: pcs: add C37 SGMII AN support for intel mGbE controller 2021-03-15 12:53:12 -07:00
phy net: phy: make PHY PM ops a no-op if MAC driver manages PHY PM 2021-04-09 16:37:04 -07:00
plip net: plip: Fix fall-through warnings for Clang 2021-03-10 12:45:15 -08:00
ppp ppp: deflate: Remove useless call "zlib_inflateEnd" 2021-03-30 16:59:30 -07:00
slip
team team: protect features update by RCU to avoid deadlock 2021-01-26 17:08:59 -08:00
usb net: cdc_ether: record speed in status method 2021-04-06 16:22:37 -07:00
vmxnet3 vmxnet3: Update driver to use ethtool_sprintf 2021-03-17 11:42:31 -07:00
wan net: wan: z85230: drop unused async state 2021-04-07 14:56:01 -07:00
wireguard wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
wireless mt76: mt7615: remove redundant dev_err call in mt7622_wmac_probe() 2021-03-28 18:04:13 -07:00
xen-netback Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net 2021-03-09 17:15:56 -08:00
bareudp.c bareudp: allow UDP L4 GRO passthrou 2021-03-30 17:06:50 -07:00
dummy.c
eql.c
geneve.c geneve: allow UDP L4 GRO passthrou 2021-03-30 17:06:50 -07:00
gtp.c net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending 2021-02-23 11:29:52 -08:00
ifb.c ifb: use new tasklet API 2021-02-02 15:51:18 -08:00
Kconfig netdevsim: Add dummy psample implementation 2021-03-14 15:00:43 -07:00
LICENSE.SRC
loopback.c Revert "net-loopback: set lo dev initial state to UP" 2021-02-11 13:10:44 -08:00
macsec.c
macvlan.c macvlan: remove redundant null check on data 2021-01-05 16:52:02 -08:00
macvtap.c
Makefile dsa: simplify Kconfig symbols and dependencies 2021-03-22 12:15:37 -07:00
mdio.c net: mdio: Correct function name mdio45_links_ok() in comment 2021-03-29 13:42:44 -07:00
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c net: fix dev_ifsioc_locked() race condition 2021-02-11 18:14:19 -08:00
thunderbolt.c
tun.c bpf, devmap: Move drop error path to devmap for XDP_REDIRECT 2021-03-18 16:38:51 +01:00
veth.c veth: Implement ethtool's get_channels() callback 2021-03-30 09:24:39 -07:00
virtio_net.c Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-03-25 16:30:46 -07:00
vrf.c
vsockmon.c
vxlan.c vxlan: allow L4 GRO passthrough 2021-03-30 17:06:49 -07:00
xen-netfront.c bpf, devmap: Move drop error path to devmap for XDP_REDIRECT 2021-03-18 16:38:51 +01:00