Patchwork ixgbe: Fix ixgbe_tx_map error path

login
register
mail settings
Submitter Alexander Duyck
Date Jan. 12, 2010, 8:52 p.m.
Message ID <80769D7B14936844A23C0C43D9FBCF0F12D49A2CE7@orsmsx501.amr.corp.intel.com>
Download mbox | patch
Permalink /patch/42770/
State Awaiting Upstream
Delegated to: David Miller
Headers show

Comments

Alexander Duyck - Jan. 12, 2010, 8:52 p.m.
Actually it looks like the bug for ixgbe is in the while (count >= 0) check.  It should be just while (count > 0) insead.

It also appears there is an issue I may have introduced in igb as well.  I will go back through the drivers and see about submitting some patches to address these issues.

Thanks,

Alex

-----Original Message-----
From: Anton Blanchard [mailto:anton@samba.org] 
Sent: Tuesday, January 12, 2010 3:02 AM
To: Kirsher, Jeffrey T; Brandeburg, Jesse; Allan, Bruce W; Waskiewicz Jr, Peter P; Ronciak, John; Skidmore, Donald C; Zou, Yi; Duyck, Alexander H
Cc: e1000-devel@lists.sourceforge.net; netdev@vger.kernel.org
Subject: [PATCH] ixgbe: Fix ixgbe_tx_map error path


Commit e5a43549f7a58509a91b299a51337d386697b92c (ixgbe: remove
skb_dma_map/unmap calls from driver) looks to have introduced a bug in
ixgbe_tx_map. If we get an error from a PCI DMA call, we loop backwards
through count until it becomes -1 and return that.

The caller of ixgbe_tx_map expects 0 on error, so return that instead.

---

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alexander Duyck - Jan. 12, 2010, 11:27 p.m.
Duyck, Alexander H wrote:
> Actually it looks like the bug for ixgbe is in the while (count >= 0)
> check.  It should be just while (count > 0) insead. 
> 
> It also appears there is an issue I may have introduced in igb as
> well.  I will go back through the drivers and see about submitting
> some patches to address these issues.  
> 
> Thanks,
> 
> Alex

It looks like we actually have some other patches in place that are addressing the count >= 0 issue.  This patch addresses the remaining return value of -1 issues for ixgbe. I think we should probably pull it into Jeff's tree for testing, and I will generate a separate patch for the igb issues.

Thanks,

Alex

> -----Original Message-----
> From: Anton Blanchard [mailto:anton@samba.org]
> Sent: Tuesday, January 12, 2010 3:02 AM
> To: Kirsher, Jeffrey T; Brandeburg, Jesse; Allan, Bruce W; Waskiewicz
> Jr, Peter P; Ronciak, John; Skidmore, Donald C; Zou, Yi; Duyck,
> Alexander H  
> Cc: e1000-devel@lists.sourceforge.net; netdev@vger.kernel.org
> Subject: [PATCH] ixgbe: Fix ixgbe_tx_map error path
> 
> 
> Commit e5a43549f7a58509a91b299a51337d386697b92c (ixgbe: remove
> skb_dma_map/unmap calls from driver) looks to have introduced a bug in
> ixgbe_tx_map. If we get an error from a PCI DMA call, we loop
> backwards 
> through count until it becomes -1 and return that.
> 
> The caller of ixgbe_tx_map expects 0 on error, so return that instead.
> 
> ---
> 
> diff --git a/drivers/net/ixgbe/ixgbe_main.c
> b/drivers/net/ixgbe/ixgbe_main.c 
> index 1a2ea62..af660ba 100644
> --- a/drivers/net/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ixgbe/ixgbe_main.c
> @@ -5174,7 +5174,7 @@ dma_error:
>  		ixgbe_unmap_and_free_tx_resource(adapter, tx_buffer_info);
>  	}
> 
> -	return count;
> +	return 0;
>  }
> 
>  static void ixgbe_tx_queue(struct ixgbe_adapter *adapter,

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 1a2ea62..af660ba 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -5174,7 +5174,7 @@  dma_error:
 		ixgbe_unmap_and_free_tx_resource(adapter, tx_buffer_info);
 	}
 
-	return count;
+	return 0;
 }
 
 static void ixgbe_tx_queue(struct ixgbe_adapter *adapter,