aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi/pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rtlwifi/pci.c')
-rw-r--r--drivers/net/wireless/rtlwifi/pci.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
index c872a232427..6c56198e26b 100644
--- a/drivers/net/wireless/rtlwifi/pci.c
+++ b/drivers/net/wireless/rtlwifi/pci.c
@@ -1180,10 +1180,12 @@ static void _rtl_pci_free_tx_ring(struct ieee80211_hw *hw,
1180 ring->idx = (ring->idx + 1) % ring->entries; 1180 ring->idx = (ring->idx + 1) % ring->entries;
1181 } 1181 }
1182 1182
1183 pci_free_consistent(rtlpci->pdev, 1183 if (ring->desc) {
1184 sizeof(*ring->desc) * ring->entries, 1184 pci_free_consistent(rtlpci->pdev,
1185 ring->desc, ring->dma); 1185 sizeof(*ring->desc) * ring->entries,
1186 ring->desc = NULL; 1186 ring->desc, ring->dma);
1187 ring->desc = NULL;
1188 }
1187} 1189}
1188 1190
1189static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci) 1191static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci)
@@ -1207,12 +1209,14 @@ static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci)
1207 kfree_skb(skb); 1209 kfree_skb(skb);
1208 } 1210 }
1209 1211
1210 pci_free_consistent(rtlpci->pdev, 1212 if (rtlpci->rx_ring[rx_queue_idx].desc) {
1213 pci_free_consistent(rtlpci->pdev,
1211 sizeof(*rtlpci->rx_ring[rx_queue_idx]. 1214 sizeof(*rtlpci->rx_ring[rx_queue_idx].
1212 desc) * rtlpci->rxringcount, 1215 desc) * rtlpci->rxringcount,
1213 rtlpci->rx_ring[rx_queue_idx].desc, 1216 rtlpci->rx_ring[rx_queue_idx].desc,
1214 rtlpci->rx_ring[rx_queue_idx].dma); 1217 rtlpci->rx_ring[rx_queue_idx].dma);
1215 rtlpci->rx_ring[rx_queue_idx].desc = NULL; 1218 rtlpci->rx_ring[rx_queue_idx].desc = NULL;
1219 }
1216 } 1220 }
1217} 1221}
1218 1222