• Andrew Lunn's avatar
    net: dsa: Add lockdep class to tx queues to avoid lockdep splat · 448b4482
    Andrew Lunn authored
    DSA stacks an Ethernet device on top of an Ethernet device. This can
    cause false positive lockdep splats for the transmit queue:
    Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    
    =============================================
    [ INFO: possible recursive locking detected ]
    4.0.0-rc7-01838-g70621a215fc7 #386 Not tainted
    ---------------------------------------------
    kworker/0:0/4 is trying to acquire lock:
     (_xmit_ETHER#2){+.-...}, at: [<c040e95c>] sch_direct_xmit+0xa8/0x1fc
    
    but task is already holding lock:
     (_xmit_ETHER#2){+.-...}, at: [<c03f4208>] __dev_queue_xmit+0x4d4/0x56c
    
    other info that might help us debug this:
     Possible unsafe locking scenario:
    
           CPU0
           ----
      lock(_xmit_ETHER#2);
      lock(_xmit_ETHER#2);
    
    To avoid this, walk the tq queues of the dsa slaves and set a lockdep
    class.
    Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    448b4482
slave.c 23 KB