summaryrefslogtreecommitdiffstats
path: root/sys/net/if_loop.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2003-10-29 18:37:47 +0000
committersam <sam@FreeBSD.org>2003-10-29 18:37:47 +0000
commit357db6acd2358a0e0e437071b8caeac4b4d92a83 (patch)
tree35b1addc39adc86c844dbd70163c4ba9ba6136ef /sys/net/if_loop.c
parent47bb0c3b0937c1a26b782c6a5d860d7a38323466 (diff)
downloadFreeBSD-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.c2
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);
}
OpenPOWER on IntegriCloud