linux/drivers/net/ethernet
Íñigo Huguet f232af4295 sfc: fix TX channel offset when using legacy interrupts
In legacy interrupt mode the tx_channel_offset was hardcoded to 1, but
that's not correct if efx_sepparate_tx_channels is false. In that case,
the offset is 0 because the tx queues are in the single existing channel
at index 0, together with the rx queue.

Without this fix, as soon as you try to send any traffic, it tries to
get the tx queues from an uninitialized channel getting these errors:
  WARNING: CPU: 1 PID: 0 at drivers/net/ethernet/sfc/tx.c:540 efx_hard_start_xmit+0x12e/0x170 [sfc]
  [...]
  RIP: 0010:efx_hard_start_xmit+0x12e/0x170 [sfc]
  [...]
  Call Trace:
   <IRQ>
   dev_hard_start_xmit+0xd7/0x230
   sch_direct_xmit+0x9f/0x360
   __dev_queue_xmit+0x890/0xa40
  [...]
  BUG: unable to handle kernel NULL pointer dereference at 0000000000000020
  [...]
  RIP: 0010:efx_hard_start_xmit+0x153/0x170 [sfc]
  [...]
  Call Trace:
   <IRQ>
   dev_hard_start_xmit+0xd7/0x230
   sch_direct_xmit+0x9f/0x360
   __dev_queue_xmit+0x890/0xa40
  [...]

Fixes: c308dfd1b4 ("sfc: fix wrong tx channel offset with efx_separate_tx_channels")
Reported-by: Tianhao Zhao <tizhao@redhat.com>
Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
Acked-by: Edward Cree <ecree.xilinx@gmail.com>
Link: https://lore.kernel.org/r/20220914103648.16902-1-ihuguet@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-09-19 18:09:43 -07:00
..
3com eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
8390
actions
adaptec eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
aeroflex
agere agere: fix repeated words in comments 2022-06-27 22:06:14 -07:00
alacritech slic: remove a copy of the NAPI_POLL_WEIGHT define 2022-04-29 11:56:41 +01:00
allwinner
alteon
altera Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-06-09 16:38:15 -07:00
amazon eth: remove remaining copies of the NAPI_POLL_WEIGHT define 2022-04-30 14:00:45 +01:00
amd net: amd8111e: remove repeated dev->features assignement 2022-07-20 21:01:16 -07:00
apm drivers: net: xgene: Fix regression in CRC stripping 2022-03-23 10:30:05 -07:00
apple net: ethernet: Prepare cleanup of powerpc's asm/prom.h 2022-05-05 15:53:02 -07:00
aquantia net: atlantic: fix aq_vec index out of range error 2022-08-09 22:17:11 -07:00
arc eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
asix
atheros atl1c: use netif_napi_add_tx() for Tx NAPI 2022-07-18 11:31:28 +01:00
broadcom tg3: Disable tg3 device on system reboot to avoid triggering AER 2022-08-26 18:33:26 -07:00
brocade net: add skb_[inner_]tcp_all_headers helpers 2022-07-02 16:22:25 +01:00
cadence Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 2022-08-04 15:20:39 -07:00
calxeda net: calxedaxgmac: Fix typo (doubled "the") 2022-04-11 20:49:21 -07:00
cavium net: add skb_[inner_]tcp_all_headers helpers 2022-07-02 16:22:25 +01:00
chelsio v6.0 first rc pull request 2022-08-20 10:49:02 -07:00
cirrus cirrus: cs89x0: fix typo in comment 2022-05-22 20:44:29 +01:00
cisco SPDX changes for 6.0-rc1 2022-08-04 12:12:54 -07:00
cortina net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-08-29 13:02:27 +01:00
davicom
dec eth: de4x5: remove support for Generic DECchip & DIGITAL EtherWORKS PCI/EISA 2022-05-23 11:43:51 +01:00
dlink
emulex Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-21 13:03:39 -07:00
engleder tsnep: Fix tsnep_tx_unmap() error path usage 2022-08-08 20:44:33 -07:00
ezchip eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
faraday net: ftgmac100: Hold reference returned by of_get_child_by_name() 2022-07-13 13:29:07 +01:00
freescale net: fec: Use a spinlock to guard fep->ptp_clk_on 2022-09-02 21:15:39 -07:00
fujitsu
fungible net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-08-29 13:02:27 +01:00
google net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-08-29 13:02:27 +01:00
hisilicon net: hns: Fix spelling mistakes in comments. 2022-07-04 11:15:45 +01:00
huawei net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-08-29 13:02:27 +01:00
i825xx Networking changes for 5.18. 2022-03-24 13:13:26 -07:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-07 12:07:37 -07:00
intel iavf: Fix cached head and tail value for iavf_get_tx_pending 2022-09-08 13:22:25 -07:00
litex
marvell net: marvell: prestera: add support for for Aldrin2 2022-09-16 11:53:48 +01:00
mediatek net: ethernet: mtk_eth_soc: enable XDP support just for MT7986 SoC 2022-09-19 16:30:54 -07:00
mellanox mlxbf_gige: clear MDIO gateway lock after read 2022-09-19 14:11:48 -07:00
micrel net: micrel: Fix KS8851 Kconfig 2022-04-05 17:32:05 -07:00
microchip net: lan966x: improve error handle in lan966x_fdma_rx_get_frame() 2022-08-30 23:18:17 -07:00
microsoft net: mana: Add rmb after checking owner bits 2022-09-19 16:23:19 -07:00
moxa net: moxa: get rid of asymmetry in DMA mapping/unmapping 2022-08-22 18:15:44 -07:00
mscc net: mscc: ocelot: report ndo_get_stats64 from the wraparound-resistant ocelot->stats 2022-08-17 21:58:33 -07:00
myricom net: add skb_[inner_]tcp_all_headers helpers 2022-07-02 16:22:25 +01:00
natsemi ethernet/natsemi: fix repeated words in comments 2022-07-01 11:14:24 +01:00
neterion eth: remove neterion/vxge 2022-07-05 15:26:31 -07:00
netronome nfp: fix the access to management firmware hanging 2022-08-30 23:03:44 -07:00
ni
nvidia eth: remove remaining copies of the NAPI_POLL_WEIGHT define 2022-04-30 14:00:45 +01:00
nxp eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
oki-semi eth: pch_gbe: remove a copy of the NAPI_POLL_WEIGHT define 2022-04-29 11:56:41 +01:00
packetengines
pasemi
pensando ionic: VF initial random MAC address if no assigned mac 2022-08-25 12:39:54 -07:00
qlogic qlogic: qed: fix clang -Wformat warnings 2022-07-12 20:36:41 -07:00
qualcomm net: add skb_[inner_]tcp_all_headers helpers 2022-07-02 16:22:25 +01:00
rdc
realtek r8169: fix accessing unset transport header 2022-07-06 19:53:21 -07:00
renesas ravb: Add support for RZ/V2M 2022-05-16 10:14:27 +01:00
rocker ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler 2022-08-31 14:01:29 +01:00
samsung samsung/sxgbe: fix repeated words in comments 2022-07-01 20:13:39 -07:00
seeq
sfc sfc: fix TX channel offset when using legacy interrupts 2022-09-19 18:09:43 -07:00
sgi
silan
sis
smsc net: smsc911x: Stop and start PHY during suspend and resume 2022-08-26 18:48:15 -07:00
socionext net: switch to netif_napi_add_tx() 2022-05-05 15:54:12 -07:00
stmicro stmmac: intel: Simplify intel_eth_pci_remove() 2022-09-05 14:19:56 +01:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-14 15:27:35 -07:00
sunplus eth: sp7021: switch to netif_napi_add_tx() 2022-07-08 12:12:27 +01:00
synopsys net: add skb_[inner_]tcp_all_headers helpers 2022-07-02 16:22:25 +01:00
tehuti
ti net: ethernet: ti: am65-cpsw: Fix devlink port register sequence 2022-07-07 17:21:44 -07:00
toshiba eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
tundra
vertexcom
via ethernet/via: fix repeated words in comments 2022-07-11 14:12:54 +01:00
wangxun eth: fix the help in Wangxun's Kconfig 2022-08-05 19:01:45 -07:00
wiznet eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
xilinx net: axienet: Modify function description 2022-06-27 21:53:04 -07:00
xircom
xscale ixp4xx_eth: Set MAC address from device tree 2022-07-09 12:34:18 +01:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c jme: remove an unnecessary indirection 2022-05-05 15:53:28 -07:00
jme.h jme: remove an unnecessary indirection 2022-05-05 15:53:28 -07:00
Kconfig net: txgbe: Add build support for txgbe 2022-06-29 20:57:06 -07:00
korina.c
lantiq_etop.c eth: switch to netif_napi_add_weight() 2022-05-08 11:33:57 +01:00
lantiq_xrx200.c net: lantiq_xrx200: restore buffer if memory allocation failed 2022-08-25 12:41:39 -07:00
Makefile net: txgbe: Add build support for txgbe 2022-06-29 20:57:06 -07:00