Message ID | 80769D7B14936844A23C0C43D9FBCF0F12D49A2CE7@orsmsx501.amr.corp.intel.com |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
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
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,
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