diff options
author | 2008-03-18 21:23:47 +0000 | |
---|---|---|
committer | 2008-03-18 21:23:47 +0000 | |
commit | 7f70ec3d178274addd54a36521962a9c1a74a034 (patch) | |
tree | 7ef6815d3f63cdb41e072c93fff6b067b5bf7598 | |
parent | Make -I work correctly. RTM_NEWADDR needs to filter the ifname as well. (diff) | |
download | wireguard-openbsd-7f70ec3d178274addd54a36521962a9c1a74a034.tar.xz wireguard-openbsd-7f70ec3d178274addd54a36521962a9c1a74a034.zip |
Don't use MBUFLOCK() for ifqueue protection use the correct splnet() dance
instead. OK canacar@
-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); |