ath9k: Fix memleak on TX DMA failure
authorSujith <Sujith.Manoharan@atheros.com>
Mon, 13 Apr 2009 16:26:34 +0000 (21:56 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 22 Apr 2009 20:54:46 +0000 (16:54 -0400)
The driver-specific region has to be freed in case
of a DMA mapping failure.

Cc: stable@kernel.org
Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/xmit.c

index 628b780..faf2cab 100644 (file)
@@ -1572,8 +1572,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;
        }