From: Sujith Date: Mon, 13 Apr 2009 16:26:34 +0000 (+0530) Subject: ath9k: Fix memleak on TX DMA failure X-Git-Tag: v2.6.30.1~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=88b8ab38b1b8d606fdc3b30b08ae9d9006c65961;p=thirdparty%2Fkernel%2Fstable.git ath9k: Fix memleak on TX DMA failure commit 675902ef822c114c0dac17ed10eed43eb8f5c9ec upstream. The driver-specific region has to be freed in case of a DMA mapping failure. Signed-off-by: Sujith Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c index 689bdbf78808b..c92f44288f4b8 100644 --- a/drivers/net/wireless/ath9k/xmit.c +++ b/drivers/net/wireless/ath9k/xmit.c @@ -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; }