projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ubafree() becomes ubarelse() to fix race conditions
[unix-history]
/
usr
/
src
/
sys
/
vax
/
uba
/
up.c
diff --git
a/usr/src/sys/vax/uba/up.c
b/usr/src/sys/vax/uba/up.c
index
5171931
..
fe6fed6
100644
(file)
--- a/
usr/src/sys/vax/uba/up.c
+++ b/
usr/src/sys/vax/uba/up.c
@@
-1,4
+1,4
@@
-/* up.c 4.
9
%G% */
+/* up.c 4.
10
%G% */
#include "up.h"
#if NUP > 0
#include "up.h"
#if NUP > 0
@@
-424,7
+424,7
@@
loop:
bp->b_flags |= B_ERROR;
iodone(bp);
/* A funny place to do this ... */
bp->b_flags |= B_ERROR;
iodone(bp);
/* A funny place to do this ... */
-
UBAFREECLR(
up_ubinfo);
+
ubarelse(&
up_ubinfo);
goto loop;
}
printf("-- came back\n");
goto loop;
}
printf("-- came back\n");
@@
-600,7
+600,7
@@
upintr()
}
as &= ~(1<<unit);
upsoftas &= ~(1<<unit);
}
as &= ~(1<<unit);
upsoftas &= ~(1<<unit);
-
UBAFREECLR(
up_ubinfo);
+
ubarelse(&
up_ubinfo);
} else {
if (upaddr->upcs1 & TRE)
upaddr->upcs1 = TRE;
} else {
if (upaddr->upcs1 & TRE)
upaddr->upcs1 = TRE;
@@
-740,7
+740,7
@@
upreset()
uptab.b_actf = uptab.b_actl = 0;
if (up_ubinfo) {
printf("<%d>", (up_ubinfo>>28)&0xf);
uptab.b_actf = uptab.b_actl = 0;
if (up_ubinfo) {
printf("<%d>", (up_ubinfo>>28)&0xf);
-
UBAFREECLR(
up_ubinfo);
+
ubarelse(&
up_ubinfo);
}
UPADDR->upcs2 = CLR; /* clear controller */
for (unit = 0; unit < NUP; unit++) {
}
UPADDR->upcs2 = CLR; /* clear controller */
for (unit = 0; unit < NUP; unit++) {