]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ath9k: Fix memleak on TX DMA failure
authorSujith <Sujith.Manoharan@atheros.com>
Mon, 13 Apr 2009 16:26:34 +0000 (21:56 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 2 Jul 2009 23:50:13 +0000 (16:50 -0700)
commit 675902ef822c114c0dac17ed10eed43eb8f5c9ec upstream.

The driver-specific region has to be freed in case
of a DMA mapping failure.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/ath9k/xmit.c

index 689bdbf78808bc4f32c2a3c316c28ef1c9481c87..c92f44288f4b80c098edb22df0c8c010ee356374 100644 (file)
@@ -1573,8 +1573,9 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
                                           skb->len, DMA_TO_DEVICE);
        if (unlikely(dma_mapping_error(sc->dev, bf->bf_dmacontext))) {
                bf->bf_mpdu = NULL;
-               DPRINTF(sc, ATH_DBG_CONFIG,
-                       "dma_mapping_error() on TX\n");
+               kfree(tx_info_priv);
+               tx_info->rate_driver_data[0] = NULL;
+               DPRINTF(sc, ATH_DBG_FATAL, "dma_mapping_error() on TX\n");
                return -ENOMEM;
        }