]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c
rtl818x_pci: Fix a memory leak in rtl8180_init_rx_ring
[karo-tx-linux.git] / drivers / net / wireless / realtek / rtl818x / rtl8180 / dev.c
index ba242d0160ece6cfc5ff033d097bd192f139108c..e895a84481da0c68adf6642fc9614e3469e5ba90 100644 (file)
@@ -1018,6 +1018,8 @@ static int rtl8180_init_rx_ring(struct ieee80211_hw *dev)
                dma_addr_t *mapping;
                entry = priv->rx_ring + priv->rx_ring_sz*i;
                if (!skb) {
+                       pci_free_consistent(priv->pdev, priv->rx_ring_sz * 32,
+                                       priv->rx_ring, priv->rx_ring_dma);
                        wiphy_err(dev->wiphy, "Cannot allocate RX skb\n");
                        return -ENOMEM;
                }
@@ -1028,6 +1030,8 @@ static int rtl8180_init_rx_ring(struct ieee80211_hw *dev)
 
                if (pci_dma_mapping_error(priv->pdev, *mapping)) {
                        kfree_skb(skb);
+                       pci_free_consistent(priv->pdev, priv->rx_ring_sz * 32,
+                                       priv->rx_ring, priv->rx_ring_dma);
                        wiphy_err(dev->wiphy, "Cannot map DMA for RX skb\n");
                        return -ENOMEM;
                }