Recent linux-next has broken my Juniper VPN client. The tunnel gets created,
routes get added, but trying to actually send packets across results in packets
just disappearing. 'ifconfig' consistently reports exactly 1 packet sent (even
after a 'ping' command or similar should have sent multiple packets.
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400
inet 172.27.1.40 netmask 255.255.255.255 destination 172.27.1.40
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 1 bytes 355 (355.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1 bytes 61 (61.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Still broken in next-20141201, and bisection fingers this commit:
Author: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Fri Nov 7 21:22:23 2014 +0800
tun: Use iovec iterators
This patch removes the use of skb_copy_datagram_const_iovec in
favour of the iovec iterator-based skb_copy_datagram_iter.
This commit is in the kernel, and does *not* fix the problem:
Author: Jason Wang <jasowang@xxxxxxxxxx>
Date: Thu Nov 13 16:54:14 2014 +0800
tun: fix issues of iovec iterators using in tun_put_user()
So there's apparently additional issues that Jason didn't address. I tried to
revert Herbert's patch for testing, but there's at least 5 or 6 other patches
that need reverting first, so I abandoned that unless it becomes necessary...
What's the best way to proceed?