• J
    [PPPOL2TP]: Make locking calls softirq-safe · cf3752e2
    James Chapman 提交于
    Fix locking issues in the pppol2tp driver which can cause a kernel
    crash on SMP boxes. There were two problems:-
    
    1. The driver was violating read_lock() and write_lock() scheduling
       rules because it wasn't using softirq-safe locks in softirq
       contexts. So we now consistently use the _bh variants of the lock
       functions.
    
    2. The driver was calling sk_dst_get() in pppol2tp_xmit() which was
       taking sk_dst_lock in softirq context. We now call __sk_dst_get().
    Signed-off-by: NJames Chapman <jchapman@katalix.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    cf3752e2
pppol2tp.c 65.1 KB