From owner-freebsd-wireless@FreeBSD.ORG Mon Nov 21 22:53:43 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 5AA131065672; Mon, 21 Nov 2011 22:53:43 +0000 (UTC) Date: Mon, 21 Nov 2011 22:53:43 +0000 From: Alexander Best To: Adrian Chadd Message-ID: <20111121225343.GA19155@freebsd.org> References: <20111121131730.GA3599@freebsd.org> <20111121152054.GA22220@freebsd.org> <20111121221224.GA11508@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20111121221224.GA11508@freebsd.org> Cc: freebsd-wireless@freebsd.org Subject: Re: issues with the recent ath commits (r227740, r227651, ...) X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Nov 2011 22:53:43 -0000 On Mon Nov 21 11, Alexander Best wrote: > On Tue Nov 22 11, Adrian Chadd wrote: > > Hi, > > > > Please try this patch: > > looking very promising so far. haven't got the boot-up-panic. i'll let my > system run for a few hours, to see, if the lock up has also been resolved. ok. after > 45 minutes uptime i can confirm that the patch fixes the issues i experienced beforehand. unless i didn't get a boot-up-panic, my system locked up after < 5 minutes. however using your patch i noticed the following console output: ath0: ath_start: sc_inreset_cnt > 0; bailing ... only once, however. i don't believe i've seen this one ever beforehand. cheers. alex > > cheers. > alex > > > > > > > commit 3993972ed7407867dce188903f68a0751c487fbb > > Author: Adrian Chadd > > Date: Tue Nov 22 05:28:16 2011 +0800 > > > > Sleep on the correct lock. > > > > diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c > > index 83c5ede..84cb91b 100644 > > --- a/sys/dev/ath/if_ath.c > > +++ b/sys/dev/ath/if_ath.c > > @@ -1878,9 +1878,9 @@ ath_txrx_stop(struct ath_softc *sc) > > */ > > while (sc->sc_rxproc_cnt || sc->sc_txproc_cnt || > > sc->sc_txstart_cnt || sc->sc_intr_cnt) { > > - if (i <= 0) > > + if (i <= 0) > > break; > > - msleep(sc, &sc->sc_mtx, 0, "ath_txrx_stop", 1); > > + msleep(sc, &sc->sc_pcu_mtx, 0, "ath_txrx_stop", 1); > > i--; > > } > > ATH_PCU_UNLOCK(sc);