diff options
author | phk <phk@FreeBSD.org> | 1994-10-27 05:39:12 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1994-10-27 05:39:12 +0000 |
commit | 7247526ec369244c9011785fb628f7d8112f2e4e (patch) | |
tree | 2bce2224a10ae085b6a36972d9e1c014cb1c8d72 /sys/i386/isa | |
parent | e98ab36cf2bd794e7650d0e2a49d84fb92d08334 (diff) | |
download | FreeBSD-src-7247526ec369244c9011785fb628f7d8112f2e4e.zip FreeBSD-src-7247526ec369244c9011785fb628f7d8112f2e4e.tar.gz |
Extra intr's have nothing to do with LAPTOP.
Made five-strikes-we-shut-up for timeouts.
Inspired by: bde in 1.1.5.1-patch011
Diffstat (limited to 'sys/i386/isa')
-rw-r--r-- | sys/i386/isa/wd.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/i386/isa/wd.c b/sys/i386/isa/wd.c index 9e7cd51..8cc7460 100644 --- a/sys/i386/isa/wd.c +++ b/sys/i386/isa/wd.c @@ -37,7 +37,7 @@ static int wdtest = 0; * SUCH DAMAGE. * * from: @(#)wd.c 7.2 (Berkeley) 5/9/91 - * $Id: wd.c,v 1.55 1994/10/22 01:57:12 phk Exp $ + * $Id: wd.c,v 1.56 1994/10/23 21:27:40 wollman Exp $ */ /* TODO: @@ -778,9 +778,7 @@ wdintr(int unit) if (wdtab[unit].b_active == 2) return; /* intr in wdflushirq() */ if (!wdtab[unit].b_active) { -#ifndef LAPTOP printf("wdc%d: extra interrupt\n", unit); -#endif return; } @@ -1823,11 +1821,16 @@ wdtimeout(void *cdu) { struct disk *du; int x; + static int timeouts; du = (struct disk *)cdu; x = splbio(); if (du->dk_timeout != 0 && --du->dk_timeout == 0) { - wderror((struct buf *)NULL, du, "interrupt timeout"); + if(timeouts++ == 5) + wderror((struct buf *)NULL, du, + "Last time I say: interrupt timeout. Probably a portable PC."); + else if(timeouts++ < 5) + wderror((struct buf *)NULL, du, "interrupt timeout"); wdunwedge(du); wdflushirq(du, x); du->dk_skip = 0; |