]> git.baikalelectronics.ru Git - kernel.git/commit
net: stmmac: Disable Tx queues when reconfiguring the interface
authorYannick Vignon <yannick.vignon@nxp.com>
Wed, 24 Nov 2021 15:47:31 +0000 (16:47 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 26 Nov 2021 18:38:37 +0000 (10:38 -0800)
commit9c0456e4954006f5d964e453ad4bb20e6370f889
treeb19a12130a54b0694ff63900e115cd5e082550ca
parentfd15517e237881b730fa9ed7aa1416a007112db0
net: stmmac: Disable Tx queues when reconfiguring the interface

The Tx queues were not disabled in situations where the driver needed to
stop the interface to apply a new configuration. This could result in a
kernel panic when doing any of the 3 following actions:
* reconfiguring the number of queues (ethtool -L)
* reconfiguring the size of the ring buffers (ethtool -G)
* installing/removing an XDP program (ip l set dev ethX xdp)

Prevent the panic by making sure netif_tx_disable is called when stopping
an interface.

Without this patch, the following kernel panic can be observed when doing
any of the actions above:

Unable to handle kernel paging request at virtual address ffff80001238d040
[....]
 Call trace:
  dwmac4_set_addr+0x8/0x10
  dev_hard_start_xmit+0xe4/0x1ac
  sch_direct_xmit+0xe8/0x39c
  __dev_queue_xmit+0x3ec/0xaf0
  dev_queue_xmit+0x14/0x20
[...]
[ end trace 0000000000000002 ]---

Fixes: ffc6ee3fdea55 ("net: stmmac: Add initial XDP support")
Fixes: c06ce0a13f5af ("net: stmmac: Add support to Ethtool get/set ring parameters")
Fixes: e6744ea6e5815 ("net: stmmac: add ethtool support for get/set channels")
Signed-off-by: Yannick Vignon <yannick.vignon@nxp.com>
Link: https://lore.kernel.org/r/20211124154731.1676949-1-yannick.vignon@oss.nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c