CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2025/10/30 11:30:46

Modified files:
        sys/net        : if.c netisr.h pipex.c 

Log message:
Kill pipexintr().

It was used because the netlock state is unpredictable while
pipex_pppoe_output() was called. So the PPPoE output was deferred to
netisr to make sure the lock is held. However, the protocol of our
peer is always AF_UNSPEC, so ether_output() and following ether_resolve()
are just "memcpy(eh, dst->sa_data, sizeof(*eh));" where `dst' is the
immutable data of pipex session.

Manually fill ethernet header and enqueue packet. Someone could say this
the copy-paste from ether_output(), but it is very small and this time I
intentionally want to use it instead of non-obvious ifp->if_output(). So
the PPPoE pipex output became lockless.

ok yasuoka

Reply via email to