summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2010-07-14 20:56:36 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2010-07-14 20:56:36 +0000
commit8e83a9f87b54a93ba4328c58978fe4e21d3d3697 (patch)
treee511f3dfe6b1c472a0c1c622e9e23980d08a80d8
parentb1a26e7037c1f23328d22eebb43c29ffef928830 (diff)
The append side of a socketbuffer is not allowed to call sbflush().
Learned the hard way. dlg@ confirmed that it is save to just remove them, the desync will still work but the reader needs to dequeue all packets first.
-rw-r--r--sys/net/rtsock.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index 6308d190b99..3a9bcae337b 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rtsock.c,v 1.104 2010/07/14 00:42:57 dlg Exp $ */
+/* $OpenBSD: rtsock.c,v 1.105 2010/07/14 20:56:35 claudio Exp $ */
/* $NetBSD: rtsock.c,v 1.18 1996/03/29 00:32:10 cgd Exp $ */
/*
@@ -367,7 +367,6 @@ route_input(struct mbuf *m0, ...)
sotoroutecb(last)->flags |=
ROUTECB_FLAG_DESYNC |
ROUTECB_FLAG_FLUSH;
- sbflush(&last->so_rcv);
rt_senddesync((void *) sotorawcb(last));
m_freem(n);
} else {
@@ -384,7 +383,6 @@ route_input(struct mbuf *m0, ...)
/* Flag socket as desync'ed and flush required */
sotoroutecb(last)->flags |=
ROUTECB_FLAG_DESYNC | ROUTECB_FLAG_FLUSH;
- sbflush(&last->so_rcv);
rt_senddesync((void *) sotorawcb(last));
m_freem(m);
} else {