Subject: Re: Re : ath0: device timeout and ath0: hardware error; resetting
To: None <tech-net@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-net
Date: 07/08/2005 12:10:41
--EeQfGwPcQSOJBaQU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Fri, Jul 08, 2005 at 12:42:15PM -0400, mel kravitz wrote:
> with proxim gold a/b/g card in 3.99.7 all i get is:
> ath0: link state changed to DOWN
> Jul  5 19:06:32 casey129 /netbsd: ath0: link state changed to UP
> Jul  5 19:17:29 casey129 /netbsd: ath0: link state changed to DOWN
> Jul  5 19:17:29 casey129 /netbsd: ath0: link state changed to UP
> Jul  5 19:27:00 casey129 /netbsd: ath0: hardware error; resetting
> Jul  5 19:28:40 casey129 /netbsd: ath0: device timeout
> Jul  5 19:28:57 casey129 last message repeated 3 times
> Jul  5 19:35:30 casey129 /netbsd: ath0: device timeout
> Jul  5 19:35:30 casey129 /netbsd: ath0: ath_reset: unable to reset 
> hardware; hal status 0
> ....and then lock up follows. cannot '#ifconfig ath0 down'

Are you using the most up-to-date ath/net80211 sources?  If not, please
try again with those.

I am attaching a patch that synchronizes LED blinking with other ath(4)
activities.  I do not see ANY reason that it should make a difference.

With the most up-to-date ath/net80211 sources, and the LED patch, I do
not any longer see "hardware error" on my Soekris boxes.  What kind of
computer do you use?

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933

--EeQfGwPcQSOJBaQU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=ath-led-lock

Index: sys/dev/ic/ath.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/ath.c,v
retrieving revision 1.54
diff -u -u -r1.54 ath.c
--- sys/dev/ic/ath.c	6 Jul 2005 23:58:14 -0000	1.54
+++ sys/dev/ic/ath.c	8 Jul 2005 16:45:19 -0000
@@ -4358,8 +4361,10 @@
 {
 	struct ath_softc *sc = arg;
 
+	ATH_LOCK(sc);
 	ath_hal_gpioset(sc->sc_ah, sc->sc_ledpin, !sc->sc_ledon);
 	callout_reset(&sc->sc_ledtimer, sc->sc_ledoff, ath_led_done, sc);
+	ATH_UNLOCK(sc);
 }
 
 /*

--EeQfGwPcQSOJBaQU--