diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/pci.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 16 |
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 | ||
1189 | static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci) | 1191 | static 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 | ||