Subject: Re: kern/31083: netbsd-2 system crash - wdc?
To: None <gnats-bugs@NetBSD.org>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: netbsd-bugs
Date: 08/29/2005 21:36:07
--+HP7ph2BbKc20aGI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Sun, Aug 28, 2005 at 11:43:00AM +0000, j+nbsd@2005.salmi.ch wrote:
> >Number: 31083
> >Category: kern
> >Synopsis: netbsd-2 system crash - wdc?
> >Confidential: no
> >Severity: critical
> >Priority: high
> >Responsible: kern-bug-people
> >State: open
> >Class: sw-bug
> >Submitter-Id: net
> >Arrival-Date: Sun Aug 28 11:43:00 +0000 2005
> >Originator: Jukka Salmi
> >Release: NetBSD 2.0_STABLE
> >Environment:
> System: NetBSD grouper.salmi.ch 2.0_STABLE NetBSD 2.0_STABLE (GROUPER) #3: Wed Aug 24 07:22:34 UTC 2005 root@moray.salmi.ch:/build/nbsd/i386/sys/arch/i386/compile/GROUPER i386
> Architecture: i386
> Machine: i386
> >Description:
>
> Two days ago an up-to-date netbsd-2 system crashed:
>
> db> dmesg
> [...]
> viaide0:0:1: lost interrupt
> type: ata tc_bcount: 0 tc_skip: 0
> db> bt
> ltsleep(c03a4db8,10,c02d6d2f,1,0) at netbsd:ltsleep+0x6b
> wdcwait(c0c45900,48,40,3e8,9) at netbsd:wdcwait+0xa5
> __wdccommand_start(c0c45900,c0d97000,0,c0d98904,c0d98904) at netbsd:__wdccommand_start+0x73
> wdcstart(c0c45900,c0d97034,c03a4e50,c0d37b00,4000) at netbsd:wdcstart+0xb1
> wdc_ata_bio_intr(c0c45900,c0d97034,1,1,c03a4e7c) at netbsd:wdc_ata_bio_intr+0x18a
> wdcintr(c0c45900,0,7aad0010,30,580e0010) at netbsd:wdcintr+0xda
> Xintr_legacy14() at netbsd:Xintr_legacy14+0xa8
[...]
> 796 1 822 0 2 0 1 smartd wdccmd
Hi,
I just commited a fix to current, and attached is a patch against netbsd-2.
Can you try this on your system ?
Thanks
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--
--+HP7ph2BbKc20aGI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=diff2
Index: wdc.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/wdc.c,v
retrieving revision 1.172.2.7.2.10
diff -u -r1.172.2.7.2.10 wdc.c
--- wdc.c 23 Aug 2005 13:35:55 -0000 1.172.2.7.2.10
+++ wdc.c 29 Aug 2005 19:34:19 -0000
@@ -1692,6 +1692,7 @@
{
struct wdc_softc *wdc = chp->ch_wdc;
int drive = xfer->c_drive;
+ int wait_flags = (xfer->c_flags & C_POLL) ? AT_POLL : 0;
struct wdc_command *wdc_c = xfer->c_cmd;
WDCDEBUG_PRINT(("__wdccommand_start %s:%d:%d\n",
@@ -1703,7 +1704,7 @@
bus_space_write_1(chp->cmd_iot, chp->cmd_iohs[wd_sdh], 0,
WDSD_IBM | (drive << 4));
switch(wdcwait(chp, wdc_c->r_st_bmask | WDCS_DRQ,
- wdc_c->r_st_bmask, wdc_c->timeout, wdc_c->flags)) {
+ wdc_c->r_st_bmask, wdc_c->timeout, wait_flags)) {
case WDCWAIT_OK:
break;
case WDCWAIT_TOUT:
--+HP7ph2BbKc20aGI--