kern/165220: commit references a PR

dfilter service dfilter at FreeBSD.ORG
Fri Feb 17 03:30:15 UTC 2012


The following reply was made to PR kern/165220; it has been noted by GNATS.

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: kern/165220: commit references a PR
Date: Fri, 17 Feb 2012 03:23:16 +0000 (UTC)

 Author: adrian
 Date: Fri Feb 17 03:23:01 2012
 New Revision: 231854
 URL: http://svn.freebsd.org/changeset/base/231854
 
 Log:
   Begin breaking out the txrx stop code into a locked and unlocked variant.
   
   PR:	kern/165220
 
 Modified:
   head/sys/dev/ath/if_ath.c
 
 Modified: head/sys/dev/ath/if_ath.c
 ==============================================================================
 --- head/sys/dev/ath/if_ath.c	Fri Feb 17 03:01:29 2012	(r231853)
 +++ head/sys/dev/ath/if_ath.c	Fri Feb 17 03:23:01 2012	(r231854)
 @@ -1903,15 +1903,16 @@ ath_stop_locked(struct ifnet *ifp)
  
  #define	MAX_TXRX_ITERATIONS	1000
  static void
 -ath_txrx_stop(struct ath_softc *sc)
 +ath_txrx_stop_locked(struct ath_softc *sc)
  {
  	int i = MAX_TXRX_ITERATIONS;
  
  	ATH_UNLOCK_ASSERT(sc);
 +	ATH_PCU_LOCK_ASSERT(sc);
 +
  	/* Stop any new TX/RX from occuring */
  	taskqueue_block(sc->sc_tq);
  
 -	ATH_PCU_LOCK(sc);
  	/*
  	 * Sleep until all the pending operations have completed.
  	 *
 @@ -1925,7 +1926,6 @@ ath_txrx_stop(struct ath_softc *sc)
  		msleep(sc, &sc->sc_pcu_mtx, 0, "ath_txrx_stop", 1);
  		i--;
  	}
 -	ATH_PCU_UNLOCK(sc);
  
  	if (i <= 0)
  		device_printf(sc->sc_dev,
 @@ -1935,6 +1935,17 @@ ath_txrx_stop(struct ath_softc *sc)
  #undef	MAX_TXRX_ITERATIONS
  
  static void
 +ath_txrx_stop(struct ath_softc *sc)
 +{
 +	ATH_UNLOCK_ASSERT(sc);
 +	ATH_PCU_UNLOCK_ASSERT(sc);
 +
 +	ATH_PCU_LOCK(sc);
 +	ath_txrx_stop_locked(sc);
 +	ATH_PCU_UNLOCK(sc);
 +}
 +
 +static void
  ath_txrx_start(struct ath_softc *sc)
  {
  
 _______________________________________________
 svn-src-all at freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
 


More information about the freebsd-bugs mailing list