diff options
author | Archie Cobbs <archie@FreeBSD.org> | 2000-01-04 22:06:08 +0000 |
---|---|---|
committer | Archie Cobbs <archie@FreeBSD.org> | 2000-01-04 22:06:08 +0000 |
commit | 4164c447703ea9246b18edce3cd071c15c7ccaff (patch) | |
tree | 61a17740f14e4300033e96c5e83dfa92290b9ba9 /sys/netgraph/ng_pptpgre.c | |
parent | 1d19afde9548d6c998ab04a846d8e872d426c2c0 (diff) | |
download | src-4164c447703ea9246b18edce3cd071c15c7ccaff.tar.gz src-4164c447703ea9246b18edce3cd071c15c7ccaff.zip |
Fix race condition caused by missing splnet()'s.
Notes
Notes:
svn path=/head/; revision=55418
Diffstat (limited to 'sys/netgraph/ng_pptpgre.c')
-rw-r--r-- | sys/netgraph/ng_pptpgre.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/netgraph/ng_pptpgre.c b/sys/netgraph/ng_pptpgre.c index dde14bb52792..3b4c6aeeb7bc 100644 --- a/sys/netgraph/ng_pptpgre.c +++ b/sys/netgraph/ng_pptpgre.c @@ -658,6 +658,7 @@ ng_pptpgre_start_recv_ack_timer(node_p node) static void ng_pptpgre_recv_ack_timeout(void *arg) { + int s = splnet(); const node_p node = arg; const priv_p priv = node->private; struct ng_pptpgre_ackp *const a = &priv->ackp; @@ -676,6 +677,7 @@ ng_pptpgre_recv_ack_timeout(void *arg) /* Restart timer if there are any more outstanding frames */ if (priv->recvAck != priv->xmitSeq) ng_pptpgre_start_recv_ack_timer(node); + splx(s); } /* @@ -687,6 +689,7 @@ ng_pptpgre_recv_ack_timeout(void *arg) static void ng_pptpgre_send_ack_timeout(void *arg) { + int s = splnet(); const node_p node = arg; const priv_p priv = node->private; struct ng_pptpgre_ackp *const a = &priv->ackp; @@ -694,6 +697,7 @@ ng_pptpgre_send_ack_timeout(void *arg) /* Send a frame with an ack but no payload */ a->sackTimerRunning = 0; ng_pptpgre_xmit(node, NULL, NULL); + splx(s); } /************************************************************************* |