Search Linux Wireless

Re: memory clobber in rx path, maybe related to ath9k.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/14/2010 04:19 PM, Luis R. Rodriguez wrote:
Ok please try this patch, it cures it for me.

Well, it got a lot further than normal, but it still
hit the poison check after a few minutes.

Current test case is my app loading 130 or so stations, each running
wpa_supplicant.  All were created, and quite a few had associated
when the poison check hit.

So, it definitely looks like a step in the right direction, but
not fully fixed yet.

I'll do some more testing with this patch applied and using just my
perl script to make sure the problem is reproducible outside of my
application.

Thanks,
Ben



   Luis

diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
index fe73fc5..e581b1f 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -306,10 +306,8 @@ static void ath_edma_start_recv(struct ath_softc *sc)

  static void ath_edma_stop_recv(struct ath_softc *sc)
  {
-	spin_lock_bh(&sc->rx.rxbuflock);
  	ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP);
  	ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP);
-	spin_unlock_bh(&sc->rx.rxbuflock);
  }

  int ath_rx_init(struct ath_softc *sc, int nbufs)
@@ -518,6 +516,7 @@ bool ath_stoprecv(struct ath_softc *sc)
  	struct ath_hw *ah = sc->sc_ah;
  	bool stopped;

+	spin_lock_bh(&sc->rx.rxbuflock);
  	ath9k_hw_stoppcurecv(ah);
  	ath9k_hw_setrxfilter(ah, 0);
  	stopped = ath9k_hw_stopdmarecv(ah);
@@ -526,6 +525,7 @@ bool ath_stoprecv(struct ath_softc *sc)
  		ath_edma_stop_recv(sc);
  	else
  		sc->rx.rxlink = NULL;
+	spin_unlock_bh(&sc->rx.rxbuflock);

  	return stopped;
  }


--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc  http://www.candelatech.com

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux