|
@@ -912,8 +912,13 @@ static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw)
|
|
|
memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
|
|
|
ring = &rtlpci->tx_ring[BEACON_QUEUE];
|
|
|
pskb = __skb_dequeue(&ring->queue);
|
|
|
- if (pskb)
|
|
|
+ if (pskb) {
|
|
|
+ struct rtl_tx_desc *entry = &ring->desc[ring->idx];
|
|
|
+ pci_unmap_single(rtlpci->pdev, rtlpriv->cfg->ops->get_desc(
|
|
|
+ (u8 *) entry, true, HW_DESC_TXBUFF_ADDR),
|
|
|
+ pskb->len, PCI_DMA_TODEVICE);
|
|
|
kfree_skb(pskb);
|
|
|
+ }
|
|
|
|
|
|
/*NB: the beacon data buffer must be 32-bit aligned. */
|
|
|
pskb = ieee80211_beacon_get(hw, mac->vif);
|