From 11b8f63f8d9b0006b1fe43096d3eb3bb6a27b48f Mon Sep 17 00:00:00 2001 From: Sujith Manoharan Date: Mon, 21 Jul 2008 21:26:55 -0800 Subject: [PATCH] get beacon from mac80211 Use ieee80211_beacon_get to get a beacon from mac80211, which is owned by the driver. Signed-off-by: Sujith --- drivers/net/wireless/ath9k/beacon.c | 12 +++++++----- drivers/net/wireless/ath9k/main.c | 8 -------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c index 1a23fd1..7f9c8b8 100644 --- a/drivers/net/wireless/ath9k/beacon.c +++ b/drivers/net/wireless/ath9k/beacon.c @@ -411,12 +411,12 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id) if (bf->bf_mpdu != NULL) { struct ath_xmit_status tx_status; - skb = (struct sk_buff *) bf->bf_mpdu; + skb = (struct sk_buff *)bf->bf_mpdu; ath_skb_unmap_single(sc, skb, PCI_DMA_TODEVICE, get_dma_mem_context(bf, bf_dmacontext)); tx_status.flags = 0; tx_status.retries = 0; - ath_tx_complete(sc, skb, &tx_status, NULL); + dev_kfree_skb_any(skb); bf->bf_mpdu = NULL; } @@ -424,8 +424,10 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id) * NB: the beacon data buffer must be 32-bit aligned; * we assume the wbuf routines will return us something * with this alignment (perhaps should assert). + * FIXME: Fill avp->av_boff.bo_tim,avp->av_btxctl.txpower and + * avp->av_btxctl.shortPreamble */ - skb = ath_get_beacon(sc, if_id, &avp->av_boff, &avp->av_btxctl); + skb = ieee80211_beacon_get(sc->hw, avp->av_if_data); if (skb == NULL) { DPRINTF(sc, ATH_DEBUG_BEACON, "%s: cannot get skb\n", __func__); @@ -495,14 +497,14 @@ void ath_beacon_return(struct ath_softc *sc, struct ath_vap *avp) bf = avp->av_bcbuf; if (bf->bf_mpdu != NULL) { - struct sk_buff *skb = (struct sk_buff *) bf->bf_mpdu; + struct sk_buff *skb = (struct sk_buff *)bf->bf_mpdu; struct ath_xmit_status tx_status; ath_skb_unmap_single(sc, skb, PCI_DMA_TODEVICE, get_dma_mem_context(bf, bf_dmacontext)); tx_status.flags = 0; tx_status.retries = 0; - ath_tx_complete(sc, skb, &tx_status, NULL); + dev_kfree_skb_any(skb); bf->bf_mpdu = NULL; } list_add_tail(&bf->list, &sc->sc_bbuf); diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c index 94ce3fc..1a7c4ef 100644 --- a/drivers/net/wireless/ath9k/main.c +++ b/drivers/net/wireless/ath9k/main.c @@ -1009,14 +1009,6 @@ void ath_get_beaconconfig(struct ath_softc *sc, conf->bmiss_timeout = ATH_DEFAULT_BMISS_LIMIT * conf->listen_interval; } -struct sk_buff *ath_get_beacon(struct ath_softc *sc, - int if_id, - struct ath_beacon_offset *bo, - struct ath_tx_control *txctl) -{ - return NULL; -} - int ath_update_beacon(struct ath_softc *sc, int if_id, struct ath_beacon_offset *bo, -- 1.5.4.3