diff options
author | jkim <jkim@FreeBSD.org> | 2006-07-12 00:49:46 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2006-07-12 00:49:46 +0000 |
commit | 21e00b8d7070c6cac3980116707f1e5007f05fba (patch) | |
tree | ec0c5b8ba3a160eda6d965f3e91fa5dda9c653b8 /sys/dev/fdc | |
parent | 45301dddff45e060b07f601d893065d6c4e33bbb (diff) | |
download | FreeBSD-src-21e00b8d7070c6cac3980116707f1e5007f05fba.zip FreeBSD-src-21e00b8d7070c6cac3980116707f1e5007f05fba.tar.gz |
Assume floppy disk is not inserted when we have exhausted retries. This
significantly reduces booting time when there is broken floppy disk drive,
controller, cable, BIOS, etc.
When the floppy controller interface is correctly implemented, disk change
signal (DSKCHG) is reflected in the Digital Input Register (DIR) at 0x3f7.
However, there are many cases that the signal is unusable. Moreover, some
BIOS does not reserve the port at all. In those cases, the register may not
function.
Diffstat (limited to 'sys/dev/fdc')
-rw-r--r-- | sys/dev/fdc/fdc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index 2bfd4c3..19edf51 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -758,6 +758,9 @@ fdc_worker(struct fdc_data *fdc) (fdc->retry >= retries || (fd->options & FDOPT_NORETRY))) { if ((debugflags & 4)) printf("Too many retries (EIO)\n"); + mtx_lock(&fdc->fdc_mtx); + fd->flags |= FD_EMPTY; + mtx_unlock(&fdc->fdc_mtx); return (fdc_biodone(fdc, EIO)); } |