From owner-cvs-all Fri Jul 17 20:16:47 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id UAA09938 for cvs-all-outgoing; Fri, 17 Jul 1998 20:16:47 -0700 (PDT) (envelope-from owner-cvs-all@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id UAA09933; Fri, 17 Jul 1998 20:16:46 -0700 (PDT) (envelope-from bde@FreeBSD.org) From: Bruce Evans Received: (from bde@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id UAA02563; Fri, 17 Jul 1998 20:15:35 -0700 (PDT) Date: Fri, 17 Jul 1998 20:15:35 -0700 (PDT) Message-Id: <199807180315.UAA02563@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/i386/isa fd.c Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk bde 1998/07/17 20:15:34 PDT Modified files: sys/i386/isa fd.c Log: Fixed error handling after a seek error that can't happen. When the controller reports a successful seek, it is very unlikely to report seeking to a cylinder other than the one requested, but we check for this, and botched the error handling for the requested_cylinder != 0 case. This error happened when the bug fixed in rev.1.52 of caused the head of buffer queue to change to one starting on a different cylnder - the requested cylinder was found, but it wasn't what we thought we requested. The fix is simply to arrange to reset the state machine. Corruption of the buffer queue seems to only have been a problem in the floppy driver. Other drivers dequeue the head of the queue before doing physical i/o on it, so the corruption at worse broke the elevator sort order. Dequeueing breaks it anyway. Revision Changes Path 1.119 +3 -1 src/sys/i386/isa/fd.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message