• Yannick Vignon's avatar
    net: stmmac: Disable Tx queues when reconfiguring the interface · b270bfe6
    Yannick Vignon authored
    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: 5fabb012 ("net: stmmac: Add initial XDP support")
    Fixes: aa042f60 ("net: stmmac: Add support to Ethtool get/set ring parameters")
    Fixes: 0366f7e0 ("net: stmmac: add ethtool support for get/set channels")
    Signed-off-by: default avatarYannick Vignon <yannick.vignon@nxp.com>
    Link: https://lore.kernel.org/r/20211124154731.1676949-1-yannick.vignon@oss.nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    b270bfe6
stmmac_main.c 197 KB