summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2011-07-07 00:08:04 +0000
committerhenning <henning@openbsd.org>2011-07-07 00:08:04 +0000
commit0c1260220c696b1aec8127a3a448a753c3915186 (patch)
treef4248bd1e408673996e7a868f5f5fa4570e771c3
parentrc.d(8) now handle some base daemons as well. (diff)
downloadwireguard-openbsd-0c1260220c696b1aec8127a3a448a753c3915186.tar.xz
wireguard-openbsd-0c1260220c696b1aec8127a3a448a753c3915186.zip
another case of "clever" fiddling with ifq internals, just stumbled over
this in my monster diff and wondered that i hadn't put that in already... claudio ryan ok
-rw-r--r--sys/net/if_spppsubr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/net/if_spppsubr.c b/sys/net/if_spppsubr.c
index 3c12312a1ca..35cdad33106 100644
--- a/sys/net/if_spppsubr.c
+++ b/sys/net/if_spppsubr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_spppsubr.c,v 1.93 2011/07/06 02:54:31 henning Exp $ */
+/* $OpenBSD: if_spppsubr.c,v 1.94 2011/07/07 00:08:04 henning Exp $ */
/*
* Synchronous PPP/Cisco link level subroutines.
* Keepalive protocol implemented in both Cisco and PPP modes.
@@ -1056,12 +1056,14 @@ sppp_pick(struct ifnet *ifp)
int s;
s = splnet();
- m = sp->pp_cpq.ifq_head;
+ IF_POLL(&sp->pp_cpq, m);
if (m == NULL &&
(sp->pp_phase == PHASE_NETWORK ||
- (sp->pp_flags & PP_CISCO) != 0))
- if ((m = sp->pp_fastq.ifq_head) == NULL)
+ (sp->pp_flags & PP_CISCO) != 0)) {
+ IF_POLL(&sp->pp_fastq, m);
+ if ((m) == NULL)
IFQ_POLL(&sp->pp_if.if_snd, m);
+ }
splx (s);
return (m);
}