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>