Subject: Re: kern/30194: unrecoverable wd(4) error after suspend/resume
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Lubomir Sedlacik <salo@Xtrmntr.org>
List: netbsd-bugs
Date: 05/16/2005 20:29:01
The following reply was made to PR kern/30194; it has been noted by GNATS.
From: Lubomir Sedlacik <salo@Xtrmntr.org>
To: Manuel Bouyer <bouyer@antioche.eu.org>
Cc: gnats-bugs@netbsd.org
Subject: Re: kern/30194: unrecoverable wd(4) error after suspend/resume
Date: Mon, 16 May 2005 22:28:46 +0200
--9wW02hG+pBvRTRBg
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
hi,
On Mon, May 16, 2005 at 08:02:05PM +0200, Manuel Bouyer wrote:
> can you try the attached patch ? I've not been able to reproduce your
> problem, but the atabus power hook needs to be smarter than it is
> actually.
whooa! this made a whole lot of a difference (after fixing your patch
to compile :). i am now able to suspend/resume without disk losing
interrupts and hanging. thanks a lot!
patch for your patch (i also fixed a typo in a comment):
--- ata.diff.orig 2005-05-16 20:34:50.000000000 +0200
+++ ata.diff 2005-05-16 22:17:06.000000000 +0200
@@ -57,17 +57,19 @@
* Add a command to the queue and start controller.
*
* MUST BE CALLED AT splbio()!
-@@ -772,6 +784,10 @@
+@@ -772,7 +784,11 @@
return; /* channel aleady active */
}
if (__predict_false(chp->ch_queue->queue_freeze > 0)) {
-+ if (queue->queue_flags & QF_IDLE_WAIT) {
-+ queue->queue_flags &=3D ~QF_IDLE_WAIT;
-+ wakeup(&queue->queue_flags);
+- return; /* queue froozen */
++ if (chp->ch_queue->queue_flags & QF_IDLE_WAIT) {
++ chp->ch_queue->queue_flags &=3D ~QF_IDLE_WAIT;
++ wakeup(&chp->ch_queue->queue_flags);
+ }
- return; /* queue froozen */
++ return; /* queue frozen */
}
/*
+ * if someone is waiting for the command to be active, wake it up
@@ -1422,17 +1438,17 @@
switch (why) {
case PWR_SOFTSUSPEND:
--=20
- Lubomir Sedlacik <salo@{NetBSD,Xtrmntr,silcnet}.org> --
--9wW02hG+pBvRTRBg
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (NetBSD)
iD8DBQFCiQJ+iwjDDlS8cmMRAmDGAJsE0QdHSv2OHhsGpUvb6ERSXKNqrwCfeigD
ZQdfpMG2x9Q4ggoTzlTJdvI=
=nERy
-----END PGP SIGNATURE-----
--9wW02hG+pBvRTRBg--