summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/port/devproc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/src/9/port/devproc.c b/sys/src/9/port/devproc.c
index c0ed27c92..b5097b1ab 100644
--- a/sys/src/9/port/devproc.c
+++ b/sys/src/9/port/devproc.c
@@ -1614,12 +1614,14 @@ procctlmemio(Proc *p, uintptr offset, int n, void *va, int read)
poperror();
poperror();
/* segment s still locked, fixfault() unlocks */
- if(!waserror()){
- if(fixfault(s, offset, read, 0) == 0)
- break;
- poperror();
+ if(waserror()){
+ putseg(s);
+ nexterror();
}
+ if(fixfault(s, offset, read, 0) == 0)
+ break;
putseg(s);
+ poperror();
}
/*