• James Chapman's avatar
    l2tp: Fix possible oops if transmitting or receiving when tunnel goes down · 24b95685
    James Chapman authored
    Some problems have been experienced in the field which cause an oops
    in the pppol2tp driver if L2TP tunnels fail while passing data.
    
    The pppol2tp driver uses private data that is referenced via the
    sk->sk_user_data of its UDP and PPPoL2TP sockets. This patch makes
    sure that the driver uses sock_hold() when it holds a reference to the
    sk pointer. This affects its sendmsg(), recvmsg(), getname(),
    [gs]etsockopt() and ioctl() handlers.
    
    Tested by ISP where problem was seen. System has been up 10 days with
    no oops since running this patch. Without the patch, an oops would
    occur every 1-2 days.
    
    Signed-off-by: James Chapman <jchapman@katalix.com> 
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    24b95685
pppol2tp.c 66.6 KB