tas@mcnc.UUCP (Tim Seaver) (09/11/86)
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];