mirror_ubuntu-kernels/drivers/net/ethernet
Arthur Kiyanovski c255a34e02 net: ena: Fix undefined state when tx request id is out of bounds
ena_com_tx_comp_req_id_get() checks the req_id of a received completion,
and if it is out of bounds returns -EINVAL. This is a sign that
something is wrong with the device and it needs to be reset.

The current code does not reset the device in this case, which leaves
the driver in an undefined state, where this completion is not properly
handled.

This commit adds a call to handle_invalid_req_id() in ena_clean_tx_irq()
and ena_clean_xdp_irq() which resets the device to fix the issue.

This commit also removes unnecessary request id checks from
validate_tx_req_id() and validate_xdp_req_id(). This check is unneeded
because it was already performed in ena_com_tx_comp_req_id_get(), which
is called right before these functions.

Fixes: 548c4940b9 ("net: ena: Implement XDP_TX action")
Signed-off-by: Shay Agroskin <shayagr@amazon.com>
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-01-02 12:45:13 +00:00
..
3com ethernet: replace netdev->dev_addr 16bit writes 2021-10-14 09:22:27 -07:00
8390 ethernet: 8390: remove direct netdev->dev_addr writes 2021-10-09 11:46:57 +01:00
actions ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
adaptec ethernet: adaptec: use eth_hw_addr_set() 2021-10-16 08:53:45 +01:00
aeroflex ethernet: aeroflex: use eth_hw_addr_set() 2021-10-16 08:53:45 +01:00
agere
alacritech ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
allwinner ethernet: use of_get_ethdev_address() 2021-10-07 13:39:51 +01:00
alteon ethernet: alteon: use eth_hw_addr_set() 2021-10-16 08:53:46 +01:00
altera net: altera: set a couple error code in probe() 2021-12-03 14:23:11 +00:00
amazon net: ena: Fix undefined state when tx request id is out of bounds 2022-01-02 12:45:13 +00:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-11-01 20:05:14 -07:00
apm ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
apple ethernet: replace netdev->dev_addr assignment loops 2021-10-14 09:22:25 -07:00
aquantia atlantic: Fix buff_ring OOB in aq_ring_rx_clean 2021-12-27 14:49:53 +00:00
arc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-14 16:50:14 -07:00
asix net: ax88796c: do not receive data in pointer 2021-11-22 14:32:05 +00:00
atheros net: ag71xx: Fix a potential double free in error handling paths 2021-12-28 12:16:34 +00:00
broadcom net: systemport: Add global locking for descriptor lifecycle 2021-12-16 08:15:31 -08:00
brocade ethernet: Remove redundant 'flush_workqueue()' calls 2021-10-10 11:33:15 +01:00
cadence net: macb: Fix mdio child node detection 2021-10-27 17:12:18 -07:00
calxeda ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
cavium net: liquidio: Make use of the helper macro kthread_run() 2021-10-22 11:10:10 -07:00
chelsio net: chelsio: cxgb4vf: Fix an error code in cxgb4vf_pci_probe() 2021-11-23 12:15:53 +00:00
cirrus ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
cisco ethernet: enic: use eth_hw_addr_set() 2021-10-16 08:53:46 +01:00
cortina ethernet: make use of eth_hw_addr_random() where appropriate 2021-10-14 09:22:15 -07:00
davicom ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
dec net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock() 2021-11-18 12:03:17 +00:00
dlink ethernet: replace netdev->dev_addr 16bit writes 2021-10-14 09:22:27 -07:00
emulex ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
ezchip ethernet: use of_get_ethdev_address() 2021-10-07 13:39:51 +01:00
faraday ethernet: make more use of device_get_ethdev_address() 2021-10-07 13:39:51 +01:00
freescale fsl/fman: Fix missing put_device() call in fman_port_probe 2021-12-30 13:34:06 +00:00
fujitsu ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
google gve: Correct order of processing device options 2021-12-20 18:47:56 -08:00
hisilicon net: hns3: fix race condition in debugfs 2021-12-12 16:20:50 +00:00
huawei treewide: Add missing includes masked by cgroup -> bpf dependency 2021-12-03 10:58:13 -08:00
i825xx ethernet: replace netdev->dev_addr assignment loops 2021-10-14 09:22:25 -07:00
ibm ibmvnic: drop bad optimization in reuse_tx_pools() 2021-12-02 12:09:19 +00:00
intel igc: Fix TX timestamp support for non-MSI-X platforms 2021-12-28 09:54:11 -08:00
litex litex_liteeth: Fix a double free in the remove function 2021-11-07 21:51:17 +00:00
marvell net: marvell: prestera: fix incorrect structure access 2021-12-17 19:19:09 -08:00
mediatek ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
mellanox net/mlx5e: Fix wrong features assignment in case of error 2021-12-28 22:42:50 -08:00
micrel net: ks8851: Check for error irq 2021-12-22 10:23:50 +00:00
microchip lan743x: fix deadlock in lan743x_phy_link_status_change() 2021-11-24 18:19:58 -08:00
microsoft net: mana: Fix memory leak in mana_hwc_create_wq 2021-12-09 07:58:41 -08:00
moxa
mscc net: mscc: ocelot: fix missing unlock on error in ocelot_hwstamp_set() 2021-11-29 20:20:34 -08:00
myricom ethernet: replace netdev->dev_addr assignment loops 2021-10-14 09:22:25 -07:00
natsemi natsemi: xtensa: fix section mismatch warnings 2021-11-30 18:13:37 -08:00
neterion Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-14 16:50:14 -07:00
netronome nfp: Fix memory leak in nfp_cpp_area_cache_add() 2021-12-09 07:53:33 -08:00
ni nixge: fix mac address error handling again 2021-11-22 15:05:48 +00:00
nvidia ethernet: forcedeth: remove direct netdev->dev_addr writes 2021-10-09 11:46:56 +01:00
nxp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-10-28 10:43:58 -07:00
oki-semi
packetengines ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
pasemi ethernet: manually convert memcpy(dev_addr,..., sizeof(addr)) 2021-10-14 09:22:19 -07:00
pensando ionic: Initialize the 'lif->dbid_inuse' bitmap 2021-12-28 16:07:35 -08:00
qlogic qlcnic: potential dereference null pointer of rx_queue->page_ring 2021-12-18 12:37:12 +00:00
qualcomm ethernet: make use of eth_hw_addr_random() where appropriate 2021-10-14 09:22:15 -07:00
rdc ethernet: replace netdev->dev_addr 16bit writes 2021-10-14 09:22:27 -07:00
realtek r8169: fix incorrect mac address assignment 2021-11-23 12:12:37 +00:00
renesas ethernet: renesas: use eth_hw_addr_set() 2021-10-19 12:41:47 +01:00
rocker ethernet: rocker: use eth_hw_addr_set() 2021-10-19 12:41:47 +01:00
samsung ethernet: sxgbe: use eth_hw_addr_set() 2021-10-19 12:41:48 +01:00
seeq
sfc sfc: falcon: Check null pointer of rx_queue->page_ring 2021-12-22 12:25:18 -08:00
sgi
silan ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
sis ethernet: sis900: fix indentation 2021-11-12 20:13:28 -08:00
smsc drivers: net: smc911x: Check for error irq 2021-12-22 10:23:03 +00:00
socionext ethernet: netsec: use eth_hw_addr_set() 2021-10-20 11:41:01 +01:00
stmicro net: stmmac: dwmac-visconti: Fix value of ETHER_CLK_SEL_FREQ_SEL_2P5M 2021-12-23 09:58:13 -08:00
sun ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
synopsys ethernet: constify references to netdev->dev_addr in drivers 2021-10-14 09:22:11 -07:00
tehuti ethernet: tehuti: use eth_hw_addr_set() 2021-10-20 11:41:01 +01:00
ti net: ethernet: ti: add missing of_node_put before return 2021-12-13 14:54:54 +00:00
toshiba ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
tundra
via ethernet: via-velocity: use eth_hw_addr_set() 2021-10-20 11:41:01 +01:00
wiznet net: w5100: Make w5100_remove() return void 2021-10-18 12:59:12 +01:00
xilinx net: convert users of bitmap_foo() to linkmode_foo() 2021-10-24 13:58:52 +01:00
xircom ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
xscale net: ethernet: ixp4xx: Make use of dma_pool_zalloc() instead of dma_pool_alloc/memset() 2021-10-19 13:24:26 +01:00
dnet.c ethernet: manually convert memcpy(dev_addr,..., sizeof(addr)) 2021-10-14 09:22:19 -07:00
dnet.h
ec_bhf.c ethernet: ec_bhf: use eth_hw_addr_set() 2021-10-16 08:53:46 +01:00
ethoc.c ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
fealnx.c ethernet: use eth_hw_addr_set() in unmaintained drivers 2021-10-18 13:20:38 +01:00
jme.c
jme.h
Kconfig net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver 2021-10-21 16:28:41 -07:00
korina.c ethernet: use of_get_ethdev_address() 2021-10-07 13:39:51 +01:00
lantiq_etop.c net: ethernet: lantiq_etop: fix build errors/warnings 2021-11-15 14:08:52 +00:00
lantiq_xrx200.c net: lantiq_xrx200: fix statistics of received bytes 2021-12-28 12:18:18 +00:00
Makefile net: ax88796c: ASIX AX88796C SPI Ethernet Adapter Driver 2021-10-21 16:28:41 -07:00