rtlwifi: Fix warning for unchecked pci_map_single() call
authorLarry Finger <Larry.Finger@lwfinger.net>
Thu, 27 Dec 2012 16:37:28 +0000 (10:37 -0600)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 2 Jan 2013 19:38:31 +0000 (14:38 -0500)
Kernel 3.8 implements checking of all DMA mapping calls and issues
a WARNING for the first it finds that is not checked.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rtlwifi/pci.c

index 3deacaf..4261e8e 100644 (file)
@@ -743,6 +743,8 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
 
 done:
                bufferaddress = (*((dma_addr_t *)skb->cb));
+               if (pci_dma_mapping_error(rtlpci->pdev, bufferaddress))
+                       return;
                tmp_one = 1;
                rtlpriv->cfg->ops->set_desc((u8 *) pdesc, false,
                                            HW_DESC_RXBUFF_ADDR,
@@ -1115,6 +1117,10 @@ static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw)
                                           PCI_DMA_FROMDEVICE);
 
                        bufferaddress = (*((dma_addr_t *)skb->cb));
+                       if (pci_dma_mapping_error(rtlpci->pdev, bufferaddress)) {
+                               dev_kfree_skb_any(skb);
+                               return 1;
+                       }
                        rtlpriv->cfg->ops->set_desc((u8 *)entry, false,
                                                    HW_DESC_RXBUFF_ADDR,
                                                    (u8 *)&bufferaddress);