From: utzoo!decvax!harpo!eagle!mhtsa!alice!rabbit!pjw
Newsgroups: net.unix-wizards
Title: 4.1bsd/up.c bug
Article-I.D.: rabbit.1079
Posted: Fri Jan 28 10:11:31 1983
Received: Sat Jan 29 03:12:49 1983

There is a bug in the up.c disk controller (bsd4.1) which may affect you
if you run a uda-50 and at least two more unibus disks on a different
controller.  If one of the disks is seeking and the other tries to read
but lacks some unibus resource (in ubago()), the read is left on the wrong
queue.  When the seek completes, the interrupt is attributed to the
(unstarted read), leaving the unibus's queue a mess.  The uda gets into
this only because it can have several io's outstanding, and so have
acquired all the buffered data paths (3 on a 750).  There are two simple
patches.  One is for the uda never to ask for a buffered data path.
The other, which I use, is to modify upustart()/up.c not to overlap
seeks.  The third would be to actually fix the bug. (hey berkeley?)