]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able
authorMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Tue, 20 Feb 2024 21:45:51 +0000 (22:45 +0100)
committerSasha Levin <sashal@kernel.org>
Fri, 15 Mar 2024 14:48:14 +0000 (10:48 -0400)
commit2e60e9531ab9a3118b05b1e76d6acb0c78bed425
treecb85e1466725b5f718b74a1a97d2664588959e55
parent550fe716031fc49227e930f520cba7a1a2b814c7
ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able

[ Upstream commit cbf996f52c4e658b3fb4349a869a62fd2d4c3c1c ]

Currently routines that are supposed to toggle state of ring pair do not
take care of associated interrupt with queue vector that these rings
belong to. This causes funky issues such as dead interface due to irq
misconfiguration, as per Pavel's report from Closes: tag.

Add a function responsible for disabling single IRQ in EIMC register and
call this as a very first thing when disabling ring pair during xsk_pool
setup. For enable let's reuse ixgbe_irq_enable_queues(). Besides this,
disable/enable NAPI as first/last thing when dealing with closing or
opening ring pair that xsk_pool is being configured on.

Reported-by: Pavel Vazharov <pavel@x3me.net>
Closes: https://lore.kernel.org/netdev/CAJEV1ijxNyPTwASJER1bcZzS9nMoZJqfR86nu_3jFFVXzZQ4NA@mail.gmail.com/
Fixes: 024aa5800f32 ("ixgbe: added Rx/Tx ring disable/enable functions")
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c