FIX: to kernel/sys/dev/xp.c

utzoo!decvax!ucbvax!dist2 utzoo!decvax!ucbvax!dist2
Sun Dec 6 02:50:47 AEST 1981


	I had problems getting reports of disk errors printed on the
	system console when we had a bad spot on a disk pack that we
	were using.  It appears that the recalibrate function that is
	issued clears positioning in progress significantly long before
	it actually returns the drive to a device ready state.  We are
	using the Emulex SC70 controller on a CDC9766 drive.
	Unfortunately, we do not have any DEC disk drives left so I do
	not know if the problem extends to these devices also.

There doesn't seem to be any harm in changing all instances in which the
driver waits for PIP to go off so that the driver also waits for the drive
to assert DRY.  The appropriate changes are:

	diff kernel/sys/dev/xp.c.old kernel/sys/dev/xp.c
	456c456
	< 		while(XPADDR->xpds & PIP)
	---
	> 		while((XPADDR->xpds & (PIP|DRY)) != DRY)
	512c512
	< 				while(XPADDR->xpds & PIP)
	---
	> 				while((XPADDR->xpds & (PIP|DRY)) != DRY)
	519c519
	< 				while(XPADDR->xpds & PIP)
	---
	> 				while((XPADDR->xpds & (PIP|DRY)) != DRY)

These changes should be made to all tapes written before 12/3/81.  I have
not received an answer from DEC as to whether this might happen on any of
their disks.

			Carl



More information about the Comp.bugs.2bsd mailing list