PDP10: Fixed UBA reset logic to only reset the devices which are connected to the UBA being reset (reported by R. Voorhorst)
This commit is contained in:
parent
d3bdc26a94
commit
9eff5331a9
1 changed files with 17 additions and 1 deletions
|
@ -1620,7 +1620,23 @@ int32 n = iocmap[GET_IOUBA (pa)];
|
|||
if (n < 0)
|
||||
ABORT (STOP_ILLIOC);
|
||||
if (val & UBCS_INI) {
|
||||
reset_all (5); /* start after UBA */
|
||||
DEVICE *dptr;
|
||||
int i;
|
||||
|
||||
for (i=0; (dptr = sim_devices[i]) != NULL; i++) {
|
||||
if (dptr == &uba_dev) {
|
||||
++i; /* start after UBA */
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* Now find the devices which are attached to this UBA and reset them */
|
||||
for (; (dptr = sim_devices[i]) != NULL; i++) {
|
||||
DIB *dibp = (DIB *)dptr->ctxt;
|
||||
|
||||
if ((n == iocmap[GET_IOUBA (dibp->ba)]) &&
|
||||
(dptr->reset != NULL))
|
||||
dptr->reset (dptr);
|
||||
}
|
||||
ubcs[n] = val & UBCS_DXF;
|
||||
}
|
||||
else ubcs[n] = val & UBCS_RDW;
|
||||
|
|
Loading…
Add table
Reference in a new issue