recv.c (734d1ece37fbf3d2ddfc71bc6c69e0fe35f02542) | recv.c (a3dc48e82bb146ef11cf75676c8410c1df29b0c4) |
---|---|
1/* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 730 unchanged lines hidden (view full) --- 739 */ 740 741 tds = tbf->bf_desc; 742 ret = ath9k_hw_rxprocdesc(ah, tds, &trs); 743 if (ret == -EINPROGRESS) 744 return NULL; 745 } 746 | 1/* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --- 730 unchanged lines hidden (view full) --- 739 */ 740 741 tds = tbf->bf_desc; 742 ret = ath9k_hw_rxprocdesc(ah, tds, &trs); 743 if (ret == -EINPROGRESS) 744 return NULL; 745 } 746 |
747 list_del(&bf->list); |
|
747 if (!bf->bf_mpdu) 748 return bf; 749 750 /* 751 * Synchronize the DMA transfer with CPU before 752 * 1. accessing the frame 753 * 2. requeueing the same buffer to h/w 754 */ --- 494 unchanged lines hidden (view full) --- 1249 ieee80211_rx(hw, skb); 1250 1251requeue_drop_frag: 1252 if (sc->rx.frag) { 1253 dev_kfree_skb_any(sc->rx.frag); 1254 sc->rx.frag = NULL; 1255 } 1256requeue: | 748 if (!bf->bf_mpdu) 749 return bf; 750 751 /* 752 * Synchronize the DMA transfer with CPU before 753 * 1. accessing the frame 754 * 2. requeueing the same buffer to h/w 755 */ --- 494 unchanged lines hidden (view full) --- 1250 ieee80211_rx(hw, skb); 1251 1252requeue_drop_frag: 1253 if (sc->rx.frag) { 1254 dev_kfree_skb_any(sc->rx.frag); 1255 sc->rx.frag = NULL; 1256 } 1257requeue: |
1258 list_add_tail(&bf->list, &sc->rx.rxbuf); 1259 if (flush) 1260 continue; 1261 |
|
1257 if (edma) { | 1262 if (edma) { |
1258 list_add_tail(&bf->list, &sc->rx.rxbuf); | |
1259 ath_rx_edma_buf_link(sc, qtype); 1260 } else { | 1263 ath_rx_edma_buf_link(sc, qtype); 1264 } else { |
1261 list_move_tail(&bf->list, &sc->rx.rxbuf); | |
1262 ath_rx_buf_link(sc, bf); | 1265 ath_rx_buf_link(sc, bf); |
1263 if (!flush) 1264 ath9k_hw_rxena(ah); | 1266 ath9k_hw_rxena(ah); |
1265 } 1266 } while (1); 1267 1268 spin_unlock_bh(&sc->rx.rxbuflock); 1269 1270 if (!(ah->imask & ATH9K_INT_RXEOL)) { 1271 ah->imask |= (ATH9K_INT_RXEOL | ATH9K_INT_RXORN); 1272 ath9k_hw_set_interrupts(ah); 1273 } 1274 1275 return 0; 1276} | 1267 } 1268 } while (1); 1269 1270 spin_unlock_bh(&sc->rx.rxbuflock); 1271 1272 if (!(ah->imask & ATH9K_INT_RXEOL)) { 1273 ah->imask |= (ATH9K_INT_RXEOL | ATH9K_INT_RXORN); 1274 ath9k_hw_set_interrupts(ah); 1275 } 1276 1277 return 0; 1278} |