Skip to contentSkip to conversation

vxge: use pci_dma_mapping_error to test return value

PATCH Applied Denis Kirjanov <[email protected] 2 participants 4 messages Jan 5, 2010 – Jan 10, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vxge: use pci_dma_mapping_error to test return value

pci_dma_mapping_error should be used to test return value of pci_map_single or pci_map_page.

---

drivers/net/vxge/vxge-main.c | 4 ++--

 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/vxge/vxge-main.c +2 -2
index 0fdfd58..f7ed495 100644
@@ -310,7 +310,7 @@ static int vxge_rx_map(void *dtrh, struct vxge_ring *ring)
 	dma_addr = pci_map_single(ring->pdev, rx_priv->skb_data,
 				rx_priv->data_size, PCI_DMA_FROMDEVICE);
 
-	if (dma_addr == 0) {
+	if (unlikely(pci_dma_mapping_error(ring->pdev, dma_addr))) {
 		ring->stats.pci_map_fail++;
 		return -EIO;
 	}
@@ -821,7 +821,7 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
 	int frg_cnt, first_frg_len;
 	skb_frag_t *frag;
 	int i = 0, j = 0, avail;
-	u64 dma_pointer;
+	dma_addr_t dma_pointer;
 	struct vxge_tx_priv *txdl_priv = NULL;
 	struct __vxge_hw_fifo *fifo_hw;
 	int offload_type;
maintainer
#1 lore raw

From: "Denis Kirjanov <[email protected]" <[email protected]>
Date: Wed, 6 Jan 2010 00:16:59 +0300

drivers/net/vxge/vxge-main.c vxge_xmit(struct sk_buff *skb, struct net_device *dev) · line 827

Quoted 9 lines
drivers/net/vxge/vxge-main.c +1 -1
@@ -821,7 +821,7 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
 	int frg_cnt, first_frg_len;
 	skb_frag_t *frag;
 	int i = 0, j = 0, avail;
-	u64 dma_pointer;
+	dma_addr_t dma_pointer;
 	struct vxge_tx_priv *txdl_priv = NULL;
 	struct __vxge_hw_fifo *fifo_hw;
 	int offload_type;

This will cause build warnings on platforms withe dma_addr_t is some type other than "unsigned long long", such as on sparc64 where it is a u32.

This is because of the %ll printf format used to display it a few lines down from here.

#2 lore raw
Quoted 17 lines · David Miller

From: "Denis Kirjanov <[email protected]" <[email protected]>
Date: Wed, 6 Jan 2010 00:16:59 +0300

Review vxge_xmit(struct sk_buff *skb, struct net_device *dev) · line 827

Quoted 9 lines
(quoted diff) +1 -1
@@ -821,7 +821,7 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
 	int frg_cnt, first_frg_len;
 	skb_frag_t *frag;
 	int i = 0, j = 0, avail;
-	u64 dma_pointer;
+	dma_addr_t dma_pointer;
 	struct vxge_tx_priv *txdl_priv = NULL;
 	struct __vxge_hw_fifo *fifo_hw;
 	int offload_type;

This will cause build warnings on platforms withe dma_addr_t is some type other than "unsigned long long", such as on sparc64 where it is a u32.

Quoted 2 lines

This is because of the %ll printf format used to display it a few lines down from here.

My mistake. Fixed one.

pci_dma_mapping_error should be used to test return value of pci_map_single or pci_map_page.

---

 drivers/net/vxge/vxge-main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/net/vxge/vxge-main.c +1 -1
index 0fdfd58..b9685e8 100644
@@ -310,7 +310,7 @@ static int vxge_rx_map(void *dtrh, struct vxge_ring *ring)
 	dma_addr = pci_map_single(ring->pdev, rx_priv->skb_data,
 				rx_priv->data_size, PCI_DMA_FROMDEVICE);
 
-	if (dma_addr == 0) {
+	if (unlikely(pci_dma_mapping_error(ring->pdev, dma_addr))) {
 		ring->stats.pci_map_fail++;
 		return -EIO;
 	}