4.3 BSD dmf driver reset bug
Tim Seaver
tas at mcnc.UUCP
Thu Sep 11 10:06:41 AEST 1986
The dmf driver distributed with 4.3 bsd does not correctly
handle UBA resets because the software-programmable interrupt
vector is not set in the dmfreset routine. The following diff
fixes the problem. Your line numbers will probably vary.
diff /sys/vaxuba/dmf.c.old /sys/vaxuba/dmf.c.new
92a93,95
> /* Preserve the interrupt vector for UBA resets. */
> static int dmf_vector[NDMF];
>
159c162,163
< dmfaddr->dmfccsr0 = (cvec >> 2);
---
> dmf_vector[ctlr->ui_unit] = (cvec >> 2);
> dmfaddr->dmfccsr0 = dmf_vector[ctlr->ui_unit];
167c171,172
< dmfaddr->dmfccsr0 = (cvec - 2*8) >> 2;
---
> dmf_vector[ctlr->ui_unit] = (cvec - 2*8) >> 2;
> dmfaddr->dmfccsr0 = dmf_vector[ctlr->ui_unit];
819a825
> addr->dmfccsr0 = dmf_vector[dmf];
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list