Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Feb 2003 12:24:08 +0200
From:      Ruslan Ermilov <ru@freebsd.org>
To:        Alfred Perlstein <alfred@freebsd.org>, Thomas Moestl <tmm@freebsd.org>, Soren Schmidt <sos@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: cvs commit: src/sys/kern kern_intr.c src/sys/dev/ata ata-all.c
Message-ID:  <20030218102408.GA48010@sunbay.com>
In-Reply-To: <200302141310.h1EDAega068830@repoman.freebsd.org>
References:  <200302141310.h1EDAega068830@repoman.freebsd.org>

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

--pf9I7BMVVzbSWLtt
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Feb 14, 2003 at 05:10:40AM -0800, Alfred Perlstein wrote:
> alfred      2003/02/14 05:10:40 PST
>=20
>   Modified files:
>     sys/kern             kern_intr.c=20
>     sys/dev/ata          ata-all.c=20
>   Log:
>   Fix crash dumps on ata and scsi.
>  =20
[...]
>   To fix ata, use what appears to be a polling method if we're dumping,
>   I stole this from tmm but added code to ensure that this change is
>   only in effect while dumping.
>  =20
>   Tested by: des
>  =20
FWIW, if I propagate this change to the !dumping case, it also
fixes the ``resume stucks in "ata1: resetting devices .."'' bug
I was having with my ThinkPad 600X:

%%%
Index: ata-all.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v
retrieving revision 1.165
diff -u -p -r1.165 ata-all.c
--- ata-all.c	14 Feb 2003 13:10:40 -0000	1.165
+++ ata-all.c	18 Feb 2003 10:08:22 -0000
@@ -486,8 +486,7 @@ ata_getparam(struct ata_device *atadev,=20
=20
     /* apparently some devices needs this repeated */
     do {
-	if (ata_command(atadev, command, 0, 0, 0,
-		dumping ? ATA_WAIT_READY : ATA_WAIT_INTR)) {
+	if (ata_command(atadev, command, 0, 0, 0, ATA_WAIT_READY)) {
 	    ata_prtdev(atadev, "%s identify failed\n",
 		       command =3D=3D ATA_C_ATAPI_IDENTIFY ? "ATAPI" : "ATA");
 	    free(ata_parm, M_ATA);
%%%

The resume session (with apm(4)) now looks like this:

: cbb0: PCI Memory allocated: 50103000
: cbb1: PCI Memory allocated: 50102000
: pcm0: detached
: csa: card is Thinkpad 600X/A20/T20
: pcm0: <CS461x PCM Audio> on csa0
: pcm0: <Cirrus Logic CS4297A ac97 codec>
: wakeup from sleeping state (slept 00:00:10)
: ata0: resetting devices ..
: done
: ata1: resetting devices ..
: ata1-slave: timeout waiting for cmd=3Dec s=3D01 e=3D24
: ata1-slave: ATA identify failed
: done
: system power profile changed to 'economy'
: cbb1: card inserted: event=3D0x00000000, state=3D30000920
: cbb1: cbb_power: CARD_VCC_0V and CARD_VPP_0V [44]
: cbb1: cbb_power: CARD_VCC_3V and CARD_VPP_VCC [11]
: cardbus1: Bad header in rom 0: [0] ffff
: cardbus1: Resource not specified in CIS: id=3D10, size=3D80
: cardbus1: Resource not specified in CIS: id=3D14, size=3D800
: cardbus1: Resource not specified in CIS: id=3D18, size=3D800
: cardbus1: Non-prefetchable memory at 88000000-88000fff
: cardbus1: Non-prefetchable memory rid=3D18 at 88000000-880007ff (800)
: cardbus1: Non-prefetchable memory rid=3D14 at 88000800-88000fff (800)
: cardbus1: IO port at 1000-107f
: cardbus1: IO port rid=3D10 at 1000-107f
: dc0: <Xircom X3201 10/100BaseTX> port 0x1000-0x107f mem 0x88000000-0x8800=
07ff,0x88000800-0x88000fff irq 11 at device 0.0 on cardbus1
: dc0: Ethernet address: 80:a7:b9:c0:80:fc
: miibus0: <MII bus> on dc0
: tdkphy0: <TDK 78Q2120 media interface> on miibus0
: tdkphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

I.e., exactly as it is during the boot-up:

: ata0: at 0x1f0 irq 14 on atapci0
: ata1: at 0x170 irq 15 on atapci0
: ata1-slave: timeout waiting for cmd=3Dec s=3D01 e=3D24
: ata1-slave: ATA identify failed
: ad0: 11509MB <IBM-DARA-212000> [24944/15/63] at ata0-master UDMA33
: acd0: DVD-ROM <LG DVD-ROM DRN-8080B> at ata1-master PIO4

Thankyou!

P.S.  The funny thing is that I had the ata(4) crashdumps working.  :)


Cheers,
--=20
Ruslan Ermilov		Sysadmin and DBA,
ru@sunbay.com		Sunbay Software AG,
ru@FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

--pf9I7BMVVzbSWLtt
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (FreeBSD)

iD8DBQE+UgnIUkv4P6juNwoRAoBUAJ90vf4tN1aqBYs+j/YHQcuTGe+OtwCfSywX
falLaIkY6i3lYZPsDHk0j8A=
=5+bw
-----END PGP SIGNATURE-----

--pf9I7BMVVzbSWLtt--

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?20030218102408.GA48010>