Quellcode durchsuchen

IPoIB: Check for DMA mapping error for TX packets

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Roland Dreier vor 18 Jahren
Ursprung
Commit
73fbe8be73
1 geänderte Dateien mit 5 neuen und 0 gelöschten Zeilen
  1. 5 0
      drivers/infiniband/ulp/ipoib/ipoib_ib.c

+ 5 - 0
drivers/infiniband/ulp/ipoib/ipoib_ib.c

@@ -355,6 +355,11 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
 	tx_req->skb = skb;
 	addr = dma_map_single(priv->ca->dma_device, skb->data, skb->len,
 			      DMA_TO_DEVICE);
+	if (unlikely(dma_mapping_error(addr))) {
+		++priv->stats.tx_errors;
+		dev_kfree_skb_any(skb);
+		return;
+	}
 	pci_unmap_addr_set(tx_req, mapping, addr);
 
 	if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1),