linux-next/drivers/net
David Arinzon 36a1ca01f0 net: ena: Set tx_info->xdpf value to NULL
The patch mentioned in the `Fixes` tag removed the explicit assignment
of tx_info->xdpf to NULL with the justification that there's no need
to set tx_info->xdpf to NULL and tx_info->num_of_bufs to 0 in case
of a mapping error. Both values won't be used once the mapping function
returns an error, and their values would be overridden by the next
transmitted packet.

While both values do indeed get overridden in the next transmission
call, the value of tx_info->xdpf is also used to check whether a TX
descriptor's transmission has been completed (i.e. a completion for it
was polled).

An example scenario:
1. Mapping failed, tx_info->xdpf wasn't set to NULL
2. A VF reset occurred leading to IO resource destruction and
   a call to ena_free_tx_bufs() function
3. Although the descriptor whose mapping failed was freed by the
   transmission function, it still passes the check
     if (!tx_info->skb)

   (skb and xdp_frame are in a union)
4. The xdp_frame associated with the descriptor is freed twice

This patch returns the assignment of NULL to tx_info->xdpf to make the
cleaning function knows that the descriptor is already freed.

Fixes: 504fd6a539 ("net: ena: fix DMA mapping function issues in XDP")
Signed-off-by: Shay Agroskin <shayagr@amazon.com>
Signed-off-by: David Arinzon <darinzon@amazon.com>
Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-04-11 11:21:02 +02:00
..
arcnet Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-02-15 16:20:04 -08:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-03-07 10:29:36 -08:00
caif
can can: kvaser_pciefd: Add additional Xilinx interrupts 2024-03-19 15:26:01 +01:00
dsa net: dsa: mt7530: trap link-local frames regardless of ST Port State 2024-04-11 09:26:41 +02:00
ethernet net: ena: Set tx_info->xdpf value to NULL 2024-04-11 11:21:02 +02:00
fddi net: fill in MODULE_DESCRIPTION()s for fddik/skfp 2024-02-15 08:03:46 -08:00
fjes
hamradio
hippi
hyperv hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed 2024-02-04 13:38:08 +00:00
ieee802154 spi: Updates for v6.9 2024-03-13 11:07:37 -07:00
ipa Power management updates for 6.9-rc1 2024-03-13 11:40:06 -07:00
ipvlan rtnetlink: prepare nla_put_iflink() to run under RCU 2024-02-26 11:46:12 +00:00
mctp
mdio net: phy: mdio-bcm-unimac: Add asp v2.2 support 2024-03-01 09:22:50 +00:00
netdevsim netdevsim: add ndo_get_iflink() implementation 2024-03-01 10:43:10 +00:00
pcs net: pcs: rzn1-miic: update PCS driver to use neg_mode 2024-03-07 20:49:14 -08:00
phy net: phy: micrel: lan8814: Fix when enabling/disabling 1-step timestamping 2024-04-03 19:23:17 -07:00
plip net: fill in MODULE_DESCRIPTION()s for plip 2024-02-15 08:03:46 -08:00
ppp - Kuan-Wei Chiu has developed the well-named series "lib min_heap: Min 2024-03-14 18:03:09 -07:00
pse-pd
slip
team net: team: Don't bother filling in ethtool driver version 2024-02-23 18:03:53 -08:00
thunderbolt
usb net: usb: ax88179_178a: avoid the interface always configured as random address 2024-04-04 09:30:18 -07:00
vmxnet3 vmxnet3: Fix missing reserved tailroom 2024-03-14 12:46:24 +01:00
vxlan vxlan: Remove generic .ndo_get_stats64 2024-03-11 16:01:06 -07:00
wan net: wan: fsl_qmc_hdlc: Fix module compilation 2024-03-18 09:25:58 +00:00
wireguard wireguard: netlink: access device through ctx instead of peer 2024-03-19 11:22:50 +01:00
wireless wireless fixes for v6.9-rc2 2024-03-27 15:39:18 -07:00
wwan net: wwan: t7xx: Split 64bit accesses to fix alignment issues 2024-03-25 19:51:57 -07:00
xen-netback net: fill in MODULE_DESCRIPTION()s for xen-netback 2024-02-15 08:03:45 -08:00
amt.c net: amt: Remove generic .ndo_get_stats64 2024-03-11 15:16:13 -07:00
bareudp.c net: bareudp: Remove generic .ndo_get_stats64 2024-03-04 08:55:44 +00:00
dummy.c net/dummy: Move stats allocation to core 2024-02-21 11:20:56 +00:00
eql.c
geneve.c geneve: fix header validation in geneve[6]_xmit_skb 2024-04-08 11:51:04 +01:00
gtp.c net: gtp: Move net_device assigned in setup 2024-03-06 20:37:18 -08:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c net: add netdev_lockdep_set_classes() to virtual drivers 2024-02-13 18:45:06 -08:00
macsec.c net: macsec: Leverage core stats allocator 2024-03-06 20:36:21 -08:00
macvlan.c rtnetlink: prepare nla_put_iflink() to run under RCU 2024-02-26 11:46:12 +00:00
macvtap.c
Makefile
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c net: netconsole: Add continuation line prefix to userdata messages 2024-03-11 14:07:57 -07:00
netkit.c rtnetlink: prepare nla_put_iflink() to run under RCU 2024-02-26 11:46:12 +00:00
nlmon.c net: nlmon: Simplify nlmon_get_stats64 2024-03-04 10:18:02 +00:00
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
tun.c net: introduce include/net/rps.h 2024-03-07 21:12:43 -08:00
veth.c net: veth: do not manipulate GRO when using XDP 2024-03-18 12:25:52 +00:00
virtio_net.c virtio_net: Do not send RSS key if it is not supported 2024-04-07 15:43:14 +01:00
vrf.c
vsockmon.c net/vsockmon: Do not set zeroed statistics 2024-02-26 18:39:10 -08:00
xen-netfront.c xen-netfront: Add missing skb_mark_for_recycle 2024-03-28 18:28:12 -07:00