diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2008-03-18 21:23:48 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2008-03-18 21:23:48 +0000 |
commit | d008b8b79db0e5b9d5f5262c66f13fabe8efedda (patch) | |
tree | 1add6b75b6f99c7de344c9cd5026fa349bb70dd6 /sys | |
parent | 71503ce4ec0e81206c9d5b3e5a503eb8c8ae5256 (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.c | 11 |
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); |