ubafree() becomes ubarelse() to fix race conditions
[unix-history] / usr / src / sys / vax / uba / up.c
index 5171931..fe6fed6 100644 (file)
@@ -1,4 +1,4 @@
-/*     up.c    4.    %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++) {