[PPP]: L2TP: Fix oops in transmit and receive paths
authorJames Chapman <jchapman@katalix.com>
Tue, 6 Nov 2007 07:32:37 +0000 (23:32 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 7 Nov 2007 12:08:56 +0000 (04:08 -0800)
commit91781004b9c029ee55b7aa9ef950a373ba865dc6
treef6dbfc665cdab40b2ce3ad82222115c5509beab5
parent6a9fb9479f2672fa392711735de9e642395c9a14
[PPP]: L2TP: Fix oops in transmit and receive paths

Changes made on 18-sep to fix skb handling in the pppol2tp driver
broke the transmit and receive paths. Users are only running into this
now because distros are now using 2.6.23 and I must have messed up
when I tested the change.

For receive, we now do our own calculation of how much to pull from
the skb (variable length L2TP header) rather than using
skb_transport_offset(). Also, if the skb isn't a data packet, it must
be passed back to UDP with skb->data pointing to the UDP header.

For transmit, make sure skb->sk is set up because ip_queue_xmit()
needs it.

Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/pppol2tp.c