summaryrefslogtreecommitdiff
path: root/sys/src/9/ip/loopbackmedium.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-04-22 18:50:11 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2018-04-22 18:50:11 +0200
commit89625510554e65ec088110195670092bfe95fea4 (patch)
tree2281ad0ec3ae9df40d0a37b69f03563288373f2f /sys/src/9/ip/loopbackmedium.c
parentdbf13129a702cc066517acf147fb01c13df456cb (diff)
devip: increment in counter *AFTER* acquiering the ifc lock or loopbackmedium
Diffstat (limited to 'sys/src/9/ip/loopbackmedium.c')
-rw-r--r--sys/src/9/ip/loopbackmedium.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/src/9/ip/loopbackmedium.c b/sys/src/9/ip/loopbackmedium.c
index 38e2fd7ee..c66c31092 100644
--- a/sys/src/9/ip/loopbackmedium.c
+++ b/sys/src/9/ip/loopbackmedium.c
@@ -75,14 +75,13 @@ loopbackread(void *a)
lb = ifc->arg;
lb->readp = up; /* hide identity under a rock for unbind */
if(waserror()){
- lb->readp = 0;
+ lb->readp = nil;
pexit("hangup", 1);
}
for(;;){
bp = qbread(lb->q, Maxtu);
if(bp == nil)
continue;
- ifc->in++;
if(!canrlock(ifc)){
freeb(bp);
continue;
@@ -91,6 +90,7 @@ loopbackread(void *a)
runlock(ifc);
nexterror();
}
+ ifc->in++;
if(ifc->lifc == nil)
freeb(bp);
else