M carrera/fns.h => carrera/fns.h +1 -1
@@ 68,7 68,7 @@ void prflush(void);
ulong prid(void);
void printinit(void);
#define procrestore(p)
-void procsave(Proc*)
+void procsave(Proc*);
#define procsetup(p) ((p)->fpstate = FPinit)
void purgetlb(int);
int putnvram(ulong, void*, int);
M carrera/main.c => carrera/main.c +2 -0
@@ 419,6 419,8 @@ rdbginit(void)
void
procsave(Proc *p)
{
+ USED(p);
+
/* keep track of tlbfaults */
up->counter[TLBCNTR] += m->tlbfault - m->otlbfault;
m->otlbfault = m->tlbfault;
M port/chan.c => port/chan.c +11 -8
@@ 204,24 204,27 @@ mount(Chan *new, Chan *old, int flag, char *spec)
m->mount = newmount(m, old, 0, 0);
}
- if(m->mount && order == MREPL) {
- mountfree(m->mount);
- m->mount = 0;
- }
-
nm = newmount(m, new, flag, spec);
if(new->mnt != 0) {
+ /*
+ * copy a union when binding it onto a directory
+ */
+ flg = order;
+ if(order == MREPL)
+ flg = MAFTER;
h = &nm->next;
for(um = new->mnt->next; um; um = um->next) {
- flg = um->flag;
- if(flg == 0)
- flg = MAFTER;
f = newmount(m, um->to, flg, um->spec);
*h = f;
h = &f->next;
}
}
+ if(m->mount && order == MREPL) {
+ mountfree(m->mount);
+ m->mount = 0;
+ }
+
if(flag & MCREATE)
new->flag |= CCREATE;
M port/devlance.c => port/devlance.c +1 -1
@@ 475,7 475,7 @@ lancewrite(Chan *c, void *buf, long n, ulong offset)
qlock(&l.tlock);
if(waserror()) {
- qunlock(&ctlr->tlock);
+ qunlock(&l.tlock);
nexterror();
}
M power/fns.h => power/fns.h +1 -0
@@ 1,5 1,6 @@
#include "../port/portfns.h"
+#define affinity(x) m
void arginit(void);
void clearmmucache(void);
void clock(Ureg*);