summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1994-10-27 05:39:12 +0000
committerphk <phk@FreeBSD.org>1994-10-27 05:39:12 +0000
commit7247526ec369244c9011785fb628f7d8112f2e4e (patch)
tree2bce2224a10ae085b6a36972d9e1c014cb1c8d72 /sys
parente98ab36cf2bd794e7650d0e2a49d84fb92d08334 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/i386/isa/wd.c11
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;
OpenPOWER on IntegriCloud