From 5a822569fc7794a086947c4237be6332a296eae9 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 12 Apr 2010 22:30:47 +0000 Subject: [PATCH] ath9k: fix a crash bug and a dma sync issue git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20833 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/mac80211/patches/300-ar9300_support.patch | 6 +++--- .../mac80211/patches/560-ath9k_tx_buf_return_cleanup.patch | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package/mac80211/patches/300-ar9300_support.patch b/package/mac80211/patches/300-ar9300_support.patch index edeaaf4d5..3545935f5 100644 --- a/package/mac80211/patches/300-ar9300_support.patch +++ b/package/mac80211/patches/300-ar9300_support.patch @@ -36567,7 +36567,7 @@ index 3c4b5d2..f10bd06 100644 /* set one try for probe rates. For the * probes don't enable rts */ diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c -index 94560e2..9c01c0b 100644 +index 94560e2..f84fcf0 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c @@ -16,6 +16,8 @@ @@ -36612,7 +36612,7 @@ index 94560e2..9c01c0b 100644 + + ATH_RXBUF_RESET(bf); + memset(skb->data, 0, ah->caps.rx_status_len); -+ dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr, ++ dma_sync_single_for_device(sc->dev, bf->bf_buf_addr, + ah->caps.rx_status_len, DMA_TO_DEVICE); - /* Initialize rx descriptors */ @@ -37061,7 +37061,7 @@ index 94560e2..9c01c0b 100644 + * 1. accessing the frame + * 2. requeueing the same buffer to h/w + */ -+ dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr, ++ dma_sync_single_for_device(sc->dev, bf->bf_buf_addr, + common->rx_bufsize, + DMA_FROM_DEVICE); + diff --git a/package/mac80211/patches/560-ath9k_tx_buf_return_cleanup.patch b/package/mac80211/patches/560-ath9k_tx_buf_return_cleanup.patch index ff5591253..622b57720 100644 --- a/package/mac80211/patches/560-ath9k_tx_buf_return_cleanup.patch +++ b/package/mac80211/patches/560-ath9k_tx_buf_return_cleanup.patch @@ -94,8 +94,12 @@ return r; } -@@ -2123,11 +2121,8 @@ static void ath_tx_processq(struct ath_s +@@ -2121,13 +2119,12 @@ static void ath_tx_processq(struct ath_s + txq->axq_depth--; + txok = !(ts.ts_status & ATH9K_TXERR_MASK); txq->axq_tx_inprogress = false; ++ if (bf_held) ++ list_del(&bf_held->list); spin_unlock_bh(&txq->axq_lock); - if (bf_held) { -- 2.20.1