Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 May 1998 09:26:18 +0800 (GMT)
From:      Michael Robinson <robinson@public.bta.net.cn>
To:        mike@smith.net.au, nate@mt.sri.com
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: Bug in wd driver
Message-ID:  <199805270126.JAA20637@public.bta.net.cn>

next in thread | raw e-mail | index | archive | help
Mike Smith <mike@smith.net.au> writes:
>I'm sorry Nate, but if it was a bad spot the error register would be
>nonzero.  Please check the originally quoted diagnostic for the actual
>status/error register values.  Also note that DRQ would not be set if
>the timeout had occurred too soon.

This is from the originally quoted diagnostic:

    wd0: interrupt timeout
    wd0: status 50<rdy,seekdone> error 1<no_dam>

I am not an expert, but it looks to me like a nonzero error code.

>Actually, it eventually gives up.  (Check the source if you don't
>believe me.)

I looked at the source, and it gives up after five errors.  Unfortunately,
the driver only gets to the second retry before it wedges itself.

As for unwedging itself, this seems to be pretty suspicious:

-----/usr/src/sys/i386/isa/wd.c-----
                /*
                 * XXX this loop may never terminate.  The code to handle
                 * counting down of retries and eventually failing the i/o
                 * is in wdintr() and we can't get there from here.
                 */
------------------------------------

In real time, I waited as long as twenty minutes without it giving up.

        -Michael Robinson



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805270126.JAA20637>