Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 218008 Details for
Bug 301091
=sys-kernel/gentoo-sources-2.6*: "tg3 transmit timed out" when transmitting at high bitrate bug
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
backport of patch to fix transmit hangs on 5906
fix-transmit-hangs-5906.patch (text/plain), 3.18 KB, created by
Mike Pagano
on 2010-01-31 19:08:08 UTC
(
hide
)
Description:
backport of patch to fix transmit hangs on 5906
Filename:
MIME Type:
Creator:
Mike Pagano
Created:
2010-01-31 19:08:08 UTC
Size:
3.18 KB
patch
obsolete
>--- a/drivers/net/tg3.c 2010-01-30 15:59:44.000000000 -0500 >+++ b/drivers/net/tg3.c 2010-01-30 16:12:26.000000000 -0500 >@@ -5392,7 +5392,7 @@ static netdev_tx_t tg3_start_xmit_dma_bu > mss = 0; > if ((mss = skb_shinfo(skb)->gso_size) != 0) { > struct iphdr *iph; >- int tcp_opt_len, ip_tcp_len, hdr_len; >+ u32 tcp_opt_len, ip_tcp_len, hdr_len; > > if (skb_header_cloned(skb) && > pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { >@@ -5423,8 +5423,10 @@ static netdev_tx_t tg3_start_xmit_dma_bu > IPPROTO_TCP, > 0); > >- if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO) || >- (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)) { >+ if (tp->tg3_flags2 & TG3_FLG2_HW_TSO_2) >+ mss |= hdr_len << 9; >+ else if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO_1) || >+ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { > if (tcp_opt_len || iph->ihl > 5) { > int tsflags; > >@@ -5459,6 +5461,9 @@ static netdev_tx_t tg3_start_xmit_dma_bu > > would_hit_hwbug = 0; > >+ if ((tp->tg3_flags3 & TG3_FLG3_SHORT_DMA_BUG) && len <= 8) >+ would_hit_hwbug = 1; >+ > if (tp->tg3_flags3 & TG3_FLG3_5701_DMA_BUG) > would_hit_hwbug = 1; > else if (tg3_4g_overflow_test(mapping, len)) >@@ -5482,6 +5487,11 @@ static netdev_tx_t tg3_start_xmit_dma_bu > > tnapi->tx_buffers[entry].skb = NULL; > >+ >+ if ((tp->tg3_flags3 & TG3_FLG3_SHORT_DMA_BUG) && >+ len <= 8) >+ would_hit_hwbug = 1; >+ > if (tg3_4g_overflow_test(mapping, len)) > would_hit_hwbug = 1; > >@@ -12595,16 +12605,15 @@ static int __devinit tg3_get_invariants( > tp->pdev_peer == tp->pdev)) > tp->tg3_flags &= ~TG3_FLAG_SUPPORT_MSI; > >- if ((tp->tg3_flags3 & TG3_FLG3_5755_PLUS) || >- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { >- tp->tg3_flags2 |= TG3_FLG2_HW_TSO_2; >- tp->tg3_flags2 |= TG3_FLG2_1SHOT_MSI; >- } else { >- tp->tg3_flags2 |= TG3_FLG2_HW_TSO_1 | TG3_FLG2_TSO_BUG; >- if (GET_ASIC_REV(tp->pci_chip_rev_id) == >- ASIC_REV_5750 && >- tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2) >- tp->tg3_flags2 &= ~TG3_FLG2_TSO_BUG; >+ if (!(tp->tg3_flags3 & TG3_FLG3_5755_PLUS)) { >+ tp->tg3_flags3 |= TG3_FLG3_4G_DMA_BNDRY_BUG; >+ tp->tg3_flags3 |= TG3_FLG3_40BIT_DMA_LIMIT_BUG; >+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) >+ tp->tg3_flags3 |= TG3_FLG3_SHORT_DMA_BUG; >+ else { >+ tp->tg3_flags3 |= TG3_FLG3_4G_DMA_BNDRY_BUG; >+ tp->tg3_flags3 |= TG3_FLG3_40BIT_DMA_LIMIT_BUG; >+ } > } > } > >@@ -13975,8 +13984,7 @@ static int __devinit tg3_init_one(struct > goto err_out_iounmap; > } > >- if ((tp->tg3_flags3 & TG3_FLG3_5755_PLUS) || >- GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) >+ if (tp->tg3_flags3 & TG3_FLG3_5755_PLUS) > dev->netdev_ops = &tg3_netdev_ops; > else > dev->netdev_ops = &tg3_netdev_ops_dma_bug; >--- a/drivers/net/tg3.h 2010-01-30 15:59:47.000000000 -0500 >+++ b/drivers/net/tg3.h 2010-01-31 14:02:59.000000000 -0500 >@@ -2759,6 +2759,9 @@ struct tg3 { > #define TG3_FLG3_TOGGLE_10_100_L1PLLPD 0x00008000 > #define TG3_FLG3_PHY_IS_FET 0x00010000 > #define TG3_FLG3_ENABLE_RSS 0x00020000 >+#define TG3_FLG3_4G_DMA_BNDRY_BUG 0x00080000 >+#define TG3_FLG3_40BIT_DMA_LIMIT_BUG 0x00100000 >+#define TG3_FLG3_SHORT_DMA_BUG 0x00200000 > > struct timer_list timer; > u16 timer_counter;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 301091
: 218008