• Herbert Xu's avatar
    [PPP] L2TP: Fix skb handling in pppol2tp_xmit · f3d5e3a4
    Herbert Xu authored
    This patch makes pppol2tp_xmit call skb_cow_head so that we don't modify
    cloned skb data.  It also gets rid of skb2 we only need to preserve the
    original skb for congestion notification, which is only applicable for
    ppp_async and ppp_sync.
    
    The other semantic change made here is the removal of socket accounting
    for data tranmitted out of pppol2tp_xmit.  The original code leaked any
    existing socket skb accounting.  We could fix this by dropping the
    original skb owner.  However, this is undesirable as the packet has not
    physically left the host yet.
    
    In fact, all other tunnels in the kernel do not account skb's passing
    through to their own socket.  In partciular, ESP over UDP does not do
    so and it is the closest tunnel type to PPPoL2TP.  So this patch simply
    removes the socket accounting in pppol2tp_xmit.  The accounting still
    applies to control packets of course.
    
    I've also added a reminder that the outgoing checksum here doesn't work.
    I suppose existing deployments don't actually enable checksums.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f3d5e3a4
pppol2tp.c 64.4 KB