Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c

Issue 6393011: ath9k: Add pktlog support Base URL: ssh://git@gitrw.chromium.org:9222/kernel.git@master
Patch Set: add missing files Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c
diff --git a/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c b/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c
index c7b14b2b279efdcd2dae3e86faeccad0da4845a5..a7fdba03860fd714c98e6fc052961ede6a654aaf 100644
--- a/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c
+++ b/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c
@@ -1082,6 +1082,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
struct ieee80211_rx_status *rxs;
struct ath_hw *ah = sc->sc_ah;
struct ath_common *common = ath9k_hw_common(ah);
+ u32 *rx_desc = NULL;
/*
* The hw can techncically differ from common->hw when using ath9k
* virtual wiphy so to account for that we iterate over the active
@@ -1174,12 +1175,24 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)
dma_type);
skb_put(skb, rs.rs_datalen + ah->caps.rx_status_len);
- if (ah->caps.rx_status_len)
+ if (ah->caps.rx_status_len) {
+ rx_desc = kzalloc(ah->caps.rx_status_len, GFP_ATOMIC);
+ if (rx_desc == NULL)
+ BUG_ON(1);
+ memcpy(rx_desc, skb->data, ah->caps.rx_status_len);
skb_pull(skb, ah->caps.rx_status_len);
+ }
ath9k_rx_skb_postprocess(common, skb, &rs,
rxs, decrypt_error);
+ if (rx_desc) {
+ ath_pktlog_rx(sc, (void *) rx_desc, skb);
+ kfree(rx_desc);
+ } else {
+ ath_pktlog_rx(sc, bf->bf_desc, skb);
+ }
+
/* We will now give hardware our shiny new allocated skb */
bf->bf_mpdu = requeue_skb;
bf->bf_buf_addr = dma_map_single(sc->dev, requeue_skb->data,

Powered by Google App Engine
This is Rietveld 408576698