there's been a long standing issue in ppp on a tty/serial line where it allocates...
authordlg <dlg@openbsd.org>
Wed, 3 Jun 2015 00:50:09 +0000 (00:50 +0000)
committerdlg <dlg@openbsd.org>
Wed, 3 Jun 2015 00:50:09 +0000 (00:50 +0000)
commitfede9e8161cb5ac0652a20b3f658f086b74b255e
tree76a0d8680db91083a3c15a44c69be8ea8e09751b
parent9e4c6648d2ff43a305d3754b4d896722803b9db3
there's been a long standing issue in ppp on a tty/serial line where it allocates mbufs at IPL_SOFTTTY, which is above the IPL_NET the mbuf layer protects itself at.

recent improvements to diagnostics in pools and mbufs now panic
instead of letting these things silently corrupt.

this reworks the ppp handling in the tty layer so it has its own
private pool to allocate packet memory out of. these packets get
built and then queued for softnet to process. softnet dequeues the
packet and attaches it to mbufs as external storage before handing
it on to the rest of the stack.

this was reported on bugs@ and tested by both Walter Daugherity and
Martin van den Nieuwelaar
ok deraadt@ mpi@
sys/net/if_ppp.c
sys/net/if_pppvar.h
sys/net/ppp_tty.c