diff options
author | sam <sam@FreeBSD.org> | 2003-10-29 18:37:47 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2003-10-29 18:37:47 +0000 |
commit | 357db6acd2358a0e0e437071b8caeac4b4d92a83 (patch) | |
tree | 35b1addc39adc86c844dbd70163c4ba9ba6136ef /sys/net/if_loop.c | |
parent | 47bb0c3b0937c1a26b782c6a5d860d7a38323466 (diff) | |
download | FreeBSD-src-357db6acd2358a0e0e437071b8caeac4b4d92a83.zip FreeBSD-src-357db6acd2358a0e0e437071b8caeac4b4d92a83.tar.gz |
Always queue looped back packets (rather than potentially using
direct dispatch) to avoid extensive kernel stack usage and to
avoid directly re-entering the network stack. The latter causes
locking problems when, for example, a complete TCP handshake`
happens w/o a context switch.
Diffstat (limited to 'sys/net/if_loop.c')
-rw-r--r-- | sys/net/if_loop.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index 21b87e5..b0ec6ea 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -345,7 +345,7 @@ if_simloop(ifp, m, af, hlen) } ifp->if_ipackets++; ifp->if_ibytes += m->m_pkthdr.len; - netisr_dispatch(isr, m); + netisr_queue(isr, m); return (0); } |