Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!think!husc6!panda!genrad!decvax!mcnc!tas From: tas@mcnc.UUCP (Tim Seaver) Newsgroups: net.bugs.4bsd Subject: 4.3 BSD dmf driver reset bug Message-ID: <1629@alvin.mcnc.UUCP> Date: Wed, 10-Sep-86 20:06:41 EDT Article-I.D.: alvin.1629 Posted: Wed Sep 10 20:06:41 1986 Date-Received: Thu, 11-Sep-86 06:01:51 EDT Organization: Microelectronics Center of NC; RTP, NC Lines: 22 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];