summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2008-03-18 21:23:48 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2008-03-18 21:23:48 +0000
commitd008b8b79db0e5b9d5f5262c66f13fabe8efedda (patch)
tree1add6b75b6f99c7de344c9cd5026fa349bb70dd6 /sys
parent71503ce4ec0e81206c9d5b3e5a503eb8c8ae5256 (diff)
Don't use MBUFLOCK() for ifqueue protection use the correct splnet() dance
instead. OK canacar@
Diffstat (limited to 'sys')
-rw-r--r--sys/net/if_pppoe.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/net/if_pppoe.c b/sys/net/if_pppoe.c
index 6a929b1836a..9fd34e47ff1 100644
--- a/sys/net/if_pppoe.c
+++ b/sys/net/if_pppoe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_pppoe.c,v 1.16 2008/03/14 02:56:26 brad Exp $ */
+/* $OpenBSD: if_pppoe.c,v 1.17 2008/03/18 21:23:47 claudio Exp $ */
/* $NetBSD: if_pppoe.c,v 1.51 2003/11/28 08:56:48 keihan Exp $ */
/*
@@ -371,18 +371,23 @@ void
pppoeintr(void)
{
struct mbuf *m;
+ int s;
splassert(IPL_SOFTNET);
while (ppoediscinq.ifq_head) {
- MBUFLOCK(IF_DEQUEUE(&ppoediscinq, m););
+ s = splnet();
+ IF_DEQUEUE(&ppoediscinq, m);
+ splx(s);
if (m == NULL)
break;
pppoe_disc_input(m);
}
while (ppoeinq.ifq_head) {
- MBUFLOCK(IF_DEQUEUE(&ppoeinq, m););
+ s = splnet();
+ IF_DEQUEUE(&ppoeinq, m);
+ splx(s);
if (m == NULL)
break;
pppoe_data_input(m);