ref: 7eddb7fa7b965aeae238115e87d94db686d13614
parent: 3932622c292dbf4ce5f65fa2a6fb6b3a3c77f174
author: Jacob Moody <moody@posixcafe.org>
date: Fri Dec 2 19:41:05 EST 2022
kernel: fix devsrv compilation on arm32
--- a/sys/src/9/port/devsrv.c
+++ b/sys/src/9/port/devsrv.c
@@ -5,7 +5,7 @@
#include "fns.h"
#include "../port/error.h"
-#define SRVTYPE(x) (((uvlong)x)&0x3)
+#define SRVTYPE(x) (((uint)x)&0x3)
#define SRVPATH(x) (((uvlong)x)>>2)
#define SRVQID(x, t) ((((uvlong)x)<<2)|((t)&0x3))
@@ -99,7 +99,6 @@
{
Srv *sp, *prv;
Board *ch;
- long ref;
if(b == &root)
return;
@@ -117,7 +116,8 @@
}
b->srv = nil;
}
- ref = decref(b);
+ if(decref(b) != 0)
+ return;
/*
* All boards must be walkable from root. So a board
@@ -125,7 +125,7 @@
* still has active children. For leaf nodes we then
* have to walk up the tree to clear now empty parents.
*/
- while(b->closed && b->child == nil && ref == 0){
+ while(b->closed && b->child == nil){
//Root should never be closed
assert(b->parent != nil);
ch = remove((Link**)&b->parent->child, b->name, ~0UL);