Line 150 of /sys/net/if_tun.c returns ENXIO when it should return EBUSY. This can cause problems if the ppp code assumes because device 0 returned ENXIO that no other devices will be available (which would be sensible), and terminates its loop without assigning a tunnel device. The current stable :) os.c code doesn't, but thats broken in its own special way anyway :) Fix: change return ENXIO; to return EBUSY; How-To-Repeat: Glance at the code..
State Changed From-To: open->closed Fixed in rev. 1.6.4.2 of /sys/net/if_tun.c