Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2dcb4a29 authored by Larry Finger's avatar Larry Finger Committed by Greg Kroah-Hartman
Browse files

staging: rtl8192e: Fix failure to check pci_map_single()



Beginning with kernel 3.8, the DMA mapping routines issue a warning
for the first call to pci_map_single() that is not checked with a
pci_dma_mapping_error() call.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0d826c39
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1183,6 +1183,8 @@ void rtl8192_tx_fill_desc(struct net_device *dev, struct tx_desc *pdesc,
						pTxFwInfo->TxRate,
						cb_desc);

	if (pci_dma_mapping_error(priv->pdev, mapping))
		RT_TRACE(COMP_ERR, "DMA Mapping error\n");;
	if (cb_desc->bAMPDUEnable) {
		pTxFwInfo->AllowAggregation = 1;
		pTxFwInfo->RxMF = cb_desc->ampdu_factor;
@@ -1280,6 +1282,8 @@ void rtl8192_tx_fill_cmd_desc(struct net_device *dev,
	dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len,
			 PCI_DMA_TODEVICE);

	if (pci_dma_mapping_error(priv->pdev, mapping))
		RT_TRACE(COMP_ERR, "DMA Mapping error\n");;
	memset(entry, 0, 12);
	entry->LINIP = cb_desc->bLastIniPkt;
	entry->FirstSeg = 1;
+9 −2
Original line number Diff line number Diff line
@@ -2104,7 +2104,10 @@ static short rtl8192_alloc_rx_desc_ring(struct net_device *dev)
						  skb_tail_pointer_rsl(skb),
						  priv->rxbuffersize,
						  PCI_DMA_FROMDEVICE);

			if (pci_dma_mapping_error(priv->pdev, *mapping)) {
				dev_kfree_skb_any(skb);
				return -1;
			}
			entry->BufferAddress = cpu_to_le32(*mapping);

			entry->Length = priv->rxbuffersize;
@@ -2397,7 +2400,11 @@ static void rtl8192_rx_normal(struct net_device *dev)
						    skb_tail_pointer_rsl(skb),
						    priv->rxbuffersize,
						    PCI_DMA_FROMDEVICE);

			if (pci_dma_mapping_error(priv->pdev,
						  *((dma_addr_t *)skb->cb))) {
				dev_kfree_skb_any(skb);
				return;
			}
		}
done:
		pdesc->BufferAddress = cpu_to_le32(*((dma_addr_t *)skb->cb));