• Xie He's avatar
    net: lapbether: Prevent racing when checking whether the netif is running · 5acd0cfb
    Xie He authored
    There are two "netif_running" checks in this driver. One is in
    "lapbeth_xmit" and the other is in "lapbeth_rcv". They serve to make
    sure that the LAPB APIs called in these functions are called before
    "lapb_unregister" is called by the "ndo_stop" function.
    
    However, these "netif_running" checks are unreliable, because it's
    possible that immediately after "netif_running" returns true, "ndo_stop"
    is called (which causes "lapb_unregister" to be called).
    
    This patch adds locking to make sure "lapbeth_xmit" and "lapbeth_rcv" can
    reliably check and ensure the netif is running while doing their work.
    
    Fixes: 1da177e4 ("Linux-2.6.12-rc2")
    Signed-off-by: default avatarXie He <xie.he.0141@gmail.com>
    Acked-by: default avatarMartin Schiller <ms@dev.tdt.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5acd0cfb
lapbether.c 11.1 KB