aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2010-10-20 19:07:05 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-27 15:41:15 -0400
commitb79b33c4baf2532aac2c0924dce5a738099b888c (patch)
tree145a75d5a58d98fd6bf33cd7c3410f1294883fbd /drivers/net/wireless
parent7583c550c3e635dcc61ab127c36ecefd59fb8dc8 (diff)
ath9k: rename rxflushlock to pcu_lock
The real way to lock RX is to contend on the PCU and reset, this will be fixed in the next patch but for now just do the renames so that the next patch which changes the locking order is crystal clear. This is part of a series that will help resolve the bug: https://bugzilla.kernel.org/show_bug.cgi?id=14624 For more details about this issue refer to: http://marc.info/?l=linux-wireless&m=128629803703756&w=2 Cc: stable@kernel.org Cc: Ben Greear <greearb@candelatech.com> Cc: Kyungwan Nam <kyungwan.nam@atheros.com> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Tested-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h2
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c4
-rw-r--r--drivers/net/wireless/ath/ath9k/recv.c6
3 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 973c919fdd27..9b8e7e3fcebd 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -310,7 +310,7 @@ struct ath_rx {
310 u8 rxotherant; 310 u8 rxotherant;
311 u32 *rxlink; 311 u32 *rxlink;
312 unsigned int rxfilter; 312 unsigned int rxfilter;
313 spinlock_t rxflushlock; 313 spinlock_t pcu_lock;
314 spinlock_t rxbuflock; 314 spinlock_t rxbuflock;
315 struct list_head rxbuf; 315 struct list_head rxbuf;
316 struct ath_descdma rxdma; 316 struct ath_descdma rxdma;
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index c6ec800d7a6b..47df22b14cf8 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -613,7 +613,7 @@ void ath9k_tasklet(unsigned long data)
613 rxmask = (ATH9K_INT_RX | ATH9K_INT_RXEOL | ATH9K_INT_RXORN); 613 rxmask = (ATH9K_INT_RX | ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
614 614
615 if (status & rxmask) { 615 if (status & rxmask) {
616 spin_lock_bh(&sc->rx.rxflushlock); 616 spin_lock_bh(&sc->rx.pcu_lock);
617 617
618 /* Check for high priority Rx first */ 618 /* Check for high priority Rx first */
619 if ((ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) && 619 if ((ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) &&
@@ -621,7 +621,7 @@ void ath9k_tasklet(unsigned long data)
621 ath_rx_tasklet(sc, 0, true); 621 ath_rx_tasklet(sc, 0, true);
622 622
623 ath_rx_tasklet(sc, 0, false); 623 ath_rx_tasklet(sc, 0, false);
624 spin_unlock_bh(&sc->rx.rxflushlock); 624 spin_unlock_bh(&sc->rx.pcu_lock);
625 } 625 }
626 626
627 if (status & ATH9K_INT_TX) { 627 if (status & ATH9K_INT_TX) {
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
index b3c9baf855c4..67fe1f8a6439 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -317,7 +317,7 @@ int ath_rx_init(struct ath_softc *sc, int nbufs)
317 struct ath_buf *bf; 317 struct ath_buf *bf;
318 int error = 0; 318 int error = 0;
319 319
320 spin_lock_init(&sc->rx.rxflushlock); 320 spin_lock_init(&sc->rx.pcu_lock);
321 sc->sc_flags &= ~SC_OP_RXFLUSH; 321 sc->sc_flags &= ~SC_OP_RXFLUSH;
322 spin_lock_init(&sc->rx.rxbuflock); 322 spin_lock_init(&sc->rx.rxbuflock);
323 323
@@ -533,13 +533,13 @@ bool ath_stoprecv(struct ath_softc *sc)
533 533
534void ath_flushrecv(struct ath_softc *sc) 534void ath_flushrecv(struct ath_softc *sc)
535{ 535{
536 spin_lock_bh(&sc->rx.rxflushlock); 536 spin_lock_bh(&sc->rx.pcu_lock);
537 sc->sc_flags |= SC_OP_RXFLUSH; 537 sc->sc_flags |= SC_OP_RXFLUSH;
538 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) 538 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
539 ath_rx_tasklet(sc, 1, true); 539 ath_rx_tasklet(sc, 1, true);
540 ath_rx_tasklet(sc, 1, false); 540 ath_rx_tasklet(sc, 1, false);
541 sc->sc_flags &= ~SC_OP_RXFLUSH; 541 sc->sc_flags &= ~SC_OP_RXFLUSH;
542 spin_unlock_bh(&sc->rx.rxflushlock); 542 spin_unlock_bh(&sc->rx.pcu_lock);
543} 543}
544 544
545static bool ath_beacon_dtim_pending_cab(struct sk_buff *skb) 545static bool ath_beacon_dtim_pending_cab(struct sk_buff *skb)