<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/ethernet/broadcom, branch v3.2.26</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>bnx2x: fix panic when TX ring is full</title>
<updated>2012-07-25T03:11:40+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-13T09:45:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=dcf42d8ca45ca2009ead5cfae84c1c0de0a0af72'/>
<id>dcf42d8ca45ca2009ead5cfae84c1c0de0a0af72</id>
<content type='text'>
commit bc14786a100cc6a81cd060e8031ec481241b418c upstream.

There is a off by one error in the minimal number of BD in
bnx2x_start_xmit() and bnx2x_tx_int() before stopping/resuming tx queue.

A full size GSO packet, with data included in skb-&gt;head really needs
(MAX_SKB_FRAGS + 4) BDs, because of bnx2x_tx_split()

This error triggers if BQL is disabled and heavy TCP transmit traffic
occurs.

bnx2x_tx_split() definitely can be called, remove a wrong comment.

Reported-by: Tomas Hruby &lt;thruby@google.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Cc: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Cc: Merav Sicron &lt;meravs@broadcom.com&gt;
Cc: Tom Herbert &lt;therbert@google.com&gt;
Cc: Robert Evans &lt;evansr@google.com&gt;
Cc: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bc14786a100cc6a81cd060e8031ec481241b418c upstream.

There is a off by one error in the minimal number of BD in
bnx2x_start_xmit() and bnx2x_tx_int() before stopping/resuming tx queue.

A full size GSO packet, with data included in skb-&gt;head really needs
(MAX_SKB_FRAGS + 4) BDs, because of bnx2x_tx_split()

This error triggers if BQL is disabled and heavy TCP transmit traffic
occurs.

bnx2x_tx_split() definitely can be called, remove a wrong comment.

Reported-by: Tomas Hruby &lt;thruby@google.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Cc: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Cc: Merav Sicron &lt;meravs@broadcom.com&gt;
Cc: Tom Herbert &lt;therbert@google.com&gt;
Cc: Robert Evans &lt;evansr@google.com&gt;
Cc: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2x: fix checksum validation</title>
<updated>2012-07-25T03:11:39+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2012-06-12T23:50:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=caac50847fd87dcc587181e3af3bd0aebf49964e'/>
<id>caac50847fd87dcc587181e3af3bd0aebf49964e</id>
<content type='text'>
commit d6cb3e41386f20fb0777d0b59a2def82c65d37f7 upstream.

bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
encapsulated segments. TCP stack happily accepts frames with bad
checksums, if they are inside a GRE or IPIP encapsulation.

Our understanding is that if no IP or L4 csum validation was done by the
hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.

Then, if IP/L4 checksumming was done by the hardware, set
CHECKSUM_UNNECESSARY if no error was flagged.

Patch based on findings and analysis from Robert Evans

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Cc: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Cc: Merav Sicron &lt;meravs@broadcom.com&gt;
Cc: Tom Herbert &lt;therbert@google.com&gt;
Cc: Robert Evans &lt;evansr@google.com&gt;
Cc: Willem de Bruijn &lt;willemb@google.com&gt;
Acked-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d6cb3e41386f20fb0777d0b59a2def82c65d37f7 upstream.

bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
encapsulated segments. TCP stack happily accepts frames with bad
checksums, if they are inside a GRE or IPIP encapsulation.

Our understanding is that if no IP or L4 csum validation was done by the
hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.

Then, if IP/L4 checksumming was done by the hardware, set
CHECKSUM_UNNECESSARY if no error was flagged.

Patch based on findings and analysis from Robert Evans

Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Cc: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Cc: Merav Sicron &lt;meravs@broadcom.com&gt;
Cc: Tom Herbert &lt;therbert@google.com&gt;
Cc: Robert Evans &lt;evansr@google.com&gt;
Cc: Willem de Bruijn &lt;willemb@google.com&gt;
Acked-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Apply short DMA frag workaround to 5906</title>
<updated>2012-07-25T03:10:56+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2012-06-07T12:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3aa9b60af8f3bc95ad279ebfac202abf97ade173'/>
<id>3aa9b60af8f3bc95ad279ebfac202abf97ade173</id>
<content type='text'>
commit b7abee6ef888117f92db370620ebf116a38e3f4d upstream.

5906 devices also need the short DMA fragment workaround.  This patch
makes the necessary change.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Tested-by: Christian Kujau &lt;lists@nerdbynature.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b7abee6ef888117f92db370620ebf116a38e3f4d upstream.

5906 devices also need the short DMA fragment workaround.  This patch
makes the necessary change.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Tested-by: Christian Kujau &lt;lists@nerdbynature.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Avoid panic from reserved statblk field access</title>
<updated>2012-05-20T21:56:37+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2012-04-24T13:37:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=63abb972410a091c02fdebc9d50287b79f1ea293'/>
<id>63abb972410a091c02fdebc9d50287b79f1ea293</id>
<content type='text'>
[ Upstream commit f891ea1634ce41f5f47ae40d8594809f4cd2ca66 ]

When RSS is enabled, interrupt vector 0 does not receive any rx traffic.
The rx producer index fields for vector 0's status block should be
considered reserved in this case.  This patch changes the code to
respect these reserved fields, which avoids a kernel panic when these
fields take on non-zero values.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit f891ea1634ce41f5f47ae40d8594809f4cd2ca66 ]

When RSS is enabled, interrupt vector 0 does not receive any rx traffic.
The rx producer index fields for vector 0's status block should be
considered reserved in this case.  This patch changes the code to
respect these reserved fields, which avoids a kernel panic when these
fields take on non-zero values.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Fix 5717 serdes powerdown problem</title>
<updated>2012-04-13T15:33:45+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2012-04-02T09:01:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2cdc02f59b9f7b14b72e8f12055f8d26b72dd948'/>
<id>2cdc02f59b9f7b14b72e8f12055f8d26b72dd948</id>
<content type='text'>
[ Upstream commit 085f1afc56619bda424941412fdeaff1e32c21dc ]

If port 0 of a 5717 serdes device powers down, it hides the phy from
port 1.  This patch works around the problem by keeping port 0's phy
powered up.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 085f1afc56619bda424941412fdeaff1e32c21dc ]

If port 0 of a 5717 serdes device powers down, it hides the phy from
port 1.  This patch works around the problem by keeping port 0's phy
powered up.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2x: Fix 5461x LED</title>
<updated>2011-11-24T00:07:55+00:00</updated>
<author>
<name>Yaniv Rosner</name>
<email>yanivr@broadcom.com</email>
</author>
<published>2011-11-23T03:54:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1d125bd52e1e1b9810a2d5a32a76147912fa4133'/>
<id>1d125bd52e1e1b9810a2d5a32a76147912fa4133</id>
<content type='text'>
Fix port identify test on 5461x PHY by driving LEDs through MDIO.

Signed-off-by: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix port identify test on 5461x PHY by driving LEDs through MDIO.

Signed-off-by: Yaniv Rosner &lt;yanivr@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>b44: Use dev_kfree_skb_irq() in b44_tx()</title>
<updated>2011-11-23T21:40:31+00:00</updated>
<author>
<name>Xander Hover</name>
<email>LKML@hover.be</email>
</author>
<published>2011-11-23T21:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=15ac2b08a2fd0f4aacbe8ae39788252fea6fbe63'/>
<id>15ac2b08a2fd0f4aacbe8ae39788252fea6fbe63</id>
<content type='text'>
Reported issues when using dev_kfree_skb() on UP systems and
systems with low numbers of cores.  dev_kfree_skb_irq() will
properly save IRQ state before freeing the skb.

Tested on 3.1.1 and 3.2_rc2

Example of reproducible trace of kernel 3.1.1
------------[ cut here ]------------
   WARNING: at kernel/softirq.c:159 local_bh_enable+0x32/0x79()
   ...
   Pid: 0, comm: swapper Not tainted 3.1.1-gentoo #1
   Call Trace:
    [&lt;c1022970&gt;] warn_slowpath_common+0x65/0x7a
    [&lt;c102699e&gt;] ? local_bh_enable+0x32/0x79
    [&lt;c1022994&gt;] warn_slowpath_null+0xf/0x13
    [&lt;c102699e&gt;] local_bh_enable+0x32/0x79
    [&lt;c134bfd8&gt;] destroy_conntrack+0x7c/0x9b
    [&lt;c134890b&gt;] nf_conntrack_destroy+0x1f/0x26
    [&lt;c132e3a6&gt;] skb_release_head_state+0x74/0x83
    [&lt;c132e286&gt;] __kfree_skb+0xb/0x6b
    [&lt;c132e30a&gt;] consume_skb+0x24/0x26
    [&lt;c127c925&gt;] b44_poll+0xaa/0x449
    [&lt;c1333ca1&gt;] net_rx_action+0x3f/0xea
    [&lt;c1026a44&gt;] __do_softirq+0x5f/0xd5
    [&lt;c10269e5&gt;] ? local_bh_enable+0x79/0x79
    &lt;IRQ&gt;  [&lt;c1026c32&gt;] ? irq_exit+0x34/0x8d
    [&lt;c1003628&gt;] ? do_IRQ+0x74/0x87
    [&lt;c13f5329&gt;] ? common_interrupt+0x29/0x30
    [&lt;c1006e18&gt;] ? default_idle+0x29/0x3e
    [&lt;c10015a7&gt;] ? cpu_idle+0x2f/0x5d
    [&lt;c13e91c5&gt;] ? rest_init+0x79/0x7b
    [&lt;c15c66a9&gt;] ? start_kernel+0x297/0x29c
    [&lt;c15c60b0&gt;] ? i386_start_kernel+0xb0/0xb7
   ---[ end trace 583f33bb1aa207a9 ]---

Signed-off-by: Xander Hover &lt;LKML@hover.be&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported issues when using dev_kfree_skb() on UP systems and
systems with low numbers of cores.  dev_kfree_skb_irq() will
properly save IRQ state before freeing the skb.

Tested on 3.1.1 and 3.2_rc2

Example of reproducible trace of kernel 3.1.1
------------[ cut here ]------------
   WARNING: at kernel/softirq.c:159 local_bh_enable+0x32/0x79()
   ...
   Pid: 0, comm: swapper Not tainted 3.1.1-gentoo #1
   Call Trace:
    [&lt;c1022970&gt;] warn_slowpath_common+0x65/0x7a
    [&lt;c102699e&gt;] ? local_bh_enable+0x32/0x79
    [&lt;c1022994&gt;] warn_slowpath_null+0xf/0x13
    [&lt;c102699e&gt;] local_bh_enable+0x32/0x79
    [&lt;c134bfd8&gt;] destroy_conntrack+0x7c/0x9b
    [&lt;c134890b&gt;] nf_conntrack_destroy+0x1f/0x26
    [&lt;c132e3a6&gt;] skb_release_head_state+0x74/0x83
    [&lt;c132e286&gt;] __kfree_skb+0xb/0x6b
    [&lt;c132e30a&gt;] consume_skb+0x24/0x26
    [&lt;c127c925&gt;] b44_poll+0xaa/0x449
    [&lt;c1333ca1&gt;] net_rx_action+0x3f/0xea
    [&lt;c1026a44&gt;] __do_softirq+0x5f/0xd5
    [&lt;c10269e5&gt;] ? local_bh_enable+0x79/0x79
    &lt;IRQ&gt;  [&lt;c1026c32&gt;] ? irq_exit+0x34/0x8d
    [&lt;c1003628&gt;] ? do_IRQ+0x74/0x87
    [&lt;c13f5329&gt;] ? common_interrupt+0x29/0x30
    [&lt;c1006e18&gt;] ? default_idle+0x29/0x3e
    [&lt;c10015a7&gt;] ? cpu_idle+0x2f/0x5d
    [&lt;c13e91c5&gt;] ? rest_init+0x79/0x7b
    [&lt;c15c66a9&gt;] ? start_kernel+0x297/0x29c
    [&lt;c15c60b0&gt;] ? i386_start_kernel+0xb0/0xb7
   ---[ end trace 583f33bb1aa207a9 ]---

Signed-off-by: Xander Hover &lt;LKML@hover.be&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2x: cache-in compressed fw image</title>
<updated>2011-11-16T22:37:15+00:00</updated>
<author>
<name>Dmitry Kravkov</name>
<email>dmitry@broadcom.com</email>
</author>
<published>2011-11-15T12:07:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=eb2afd4a622985eaccfa8c7fc83e890b8930e0ab'/>
<id>eb2afd4a622985eaccfa8c7fc83e890b8930e0ab</id>
<content type='text'>
Re-request fw from fs may fail for different reasons, once the fw was
loaded we won't release it until driver is removed.

This also resolves the boot problem when initial fw is located on initrd,
but rootfs is still unavailable, in this case device reset will fail due
to absence of fw files.

Signed-off-by: Dmitry Kravkov &lt;dmitry@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Re-request fw from fs may fail for different reasons, once the fw was
loaded we won't release it until driver is removed.

This also resolves the boot problem when initial fw is located on initrd,
but rootfs is still unavailable, in this case device reset will fail due
to absence of fw files.

Signed-off-by: Dmitry Kravkov &lt;dmitry@broadcom.com&gt;
Signed-off-by: Eilon Greenstein &lt;eilong@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Update version to 3.121</title>
<updated>2011-11-04T21:31:49+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2011-11-04T09:15:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5ae7fa06bb90421bc63f1f1e56ab241b49bc7b91'/>
<id>5ae7fa06bb90421bc63f1f1e56ab241b49bc7b91</id>
<content type='text'>
This patch updates the tg3 version to 3.121.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch updates the tg3 version to 3.121.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Eliminate timer race with reset_task</title>
<updated>2011-11-04T21:31:48+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2011-11-04T09:15:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5b1906241905d9bd1abe920854b3d43c2b9c85e1'/>
<id>5b1906241905d9bd1abe920854b3d43c2b9c85e1</id>
<content type='text'>
During shutdown, it is impossible to reliably disable the timer and
reset_task threads.  Each thread can schedule the other, which leads to
shutdown code that chases its tail.

To fix the problem, this patch removes the ability of tg3_reset_task to
schedule a new timer thread.  To support this change, tg3_timer no
longer terminates itself, but rather goes into a polling mode.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During shutdown, it is impossible to reliably disable the timer and
reset_task threads.  Each thread can schedule the other, which leads to
shutdown code that chases its tail.

To fix the problem, this patch removes the ability of tg3_reset_task to
schedule a new timer thread.  To support this change, tg3_timer no
longer terminates itself, but rather goes into a polling mode.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
