Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 04 Jun 1998 12:19:44 -0400 (EDT)
From:      Simon Shapiro <shimon@simon-shapiro.org>
To:        Mike Smith <mike@smith.net.au>
Cc:        Michael Hancock <michaelh@cet.co.jp>, "freebsd-current@freebsd.org" <freebsd-current@FreeBSD.ORG>, tcobb <tcobb@staff.circle.net>, Karl Pielorz <kpielorz@tdx.co.uk>, Bob Willcox <bob@luke.pmr.com>, Greg Lehey <grog@lemis.com>
Subject:   Re: DPT driver fails and panics with Degraded Array
Message-ID:  <XFMail.980604121944.shimon@simon-shapiro.org>
In-Reply-To: <199806032330.QAA02030@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 03-Jun-98 Mike Smith wrote:

...

>> This would normally cause a 'biodone: buffer already done' message,
>> which is a warning, not a panic.  The only way I could think of this
>> happening on a valid buffer (apart from the obvious of calling it
>> while it wasn't busy) would be if something messed around with other
>> buffer flags.
> 
> It would be an issue if the buf struct had been recycled, but hadn't 
> yet been marked busy, or if the buf pointer was invalid (the business 
> check is the very first check in biodone()).

Is this code surrounded by splhigh() ?  If not, it is entirely possible for
that to happen.  Due to the caching/quieing nature of the DPT, especially
the PM3334, and the multi-threaded nature of the DPT driver, for several
interrupts to be issued less than 1us apart.  This means that there will be
several hardware interrupts and several soft interrupts generated in a very
short period of time.

Simon


---


Sincerely Yours, 

Simon Shapiro                                           Shimon@Simon-Shapiro.ORG
                                                        770.265.7340

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



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