<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/ethernet/broadcom, branch v3.2</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 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>
<entry>
<title>tg3: Schedule at most one tg3_reset_task run</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:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=db21997379906fe7657d360674e1106d80b020a4'/>
<id>db21997379906fe7657d360674e1106d80b020a4</id>
<content type='text'>
It is possible for multiple threads in the tg3 driver to each attempt to
schedule a run of tg3_reset_task().  The multiple tg3_reset_task
executions could all wind up on the same queue (and execute serially) or
wind up on the queues of another processor (which could execute in
parallel).  Either scenario is not what was truly desired.

This patch adds a new flag, TG3_FLAG_RESET_TASK_PENDING, and uses it to
determine whether or not to schedule another run of tg3_reset_task().
With the new flag comes two new functions to facilitate scheduling and
descheduling of tg3_reset_task().

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>
It is possible for multiple threads in the tg3 driver to each attempt to
schedule a run of tg3_reset_task().  The multiple tg3_reset_task
executions could all wind up on the same queue (and execute serially) or
wind up on the queues of another processor (which could execute in
parallel).  Either scenario is not what was truly desired.

This patch adds a new flag, TG3_FLAG_RESET_TASK_PENDING, and uses it to
determine whether or not to schedule another run of tg3_reset_task().
With the new flag comes two new functions to facilitate scheduling and
descheduling of tg3_reset_task().

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: Obtain PCI function number from device</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:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9dc5e342703948ea7b086d063c85c0e79dac8149'/>
<id>9dc5e342703948ea7b086d063c85c0e79dac8149</id>
<content type='text'>
This patch adds code to attempt to obtain the PCI function number from
the device rather than accept the number handed by the kernel.  In
pass-through scenarios, the function number handed by the kernel may not
reflect the true function of the device.

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 adds code to attempt to obtain the PCI function number from
the device rather than accept the number handed by the kernel.  In
pass-through scenarios, the function number handed by the kernel may not
reflect the true function of the device.

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: Fix irq alloc error cleanup path</title>
<updated>2011-11-04T21:31:47+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2011-11-04T09:15:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5bc09186deba2a016b60aa3923fc0e42838ce877'/>
<id>5bc09186deba2a016b60aa3923fc0e42838ce877</id>
<content type='text'>
This patch fixes a bug where the irq error cleanup path did not free all
the resources it allocated.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: Ben Li &lt;benli@broadcom.com&gt;
Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.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 fixes a bug where the irq error cleanup path did not free all
the resources it allocated.

Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: Ben Li &lt;benli@broadcom.com&gt;
Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.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: Fix 4k skb error recovery path</title>
<updated>2011-11-04T21:31:47+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2011-11-04T09:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ba1142e4fb291c7bf124d93596351dca8d226a0f'/>
<id>ba1142e4fb291c7bf124d93596351dca8d226a0f</id>
<content type='text'>
On the error recovery resource unwind path, it is possible for the
driver to attempt to unmap a fragment that hadn't been mapped.  This
patch fixes the problem by correcting the "last" parameter supplied.

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>
On the error recovery resource unwind path, it is possible for the
driver to attempt to unmap a fragment that hadn't been mapped.  This
patch fixes the problem by correcting the "last" parameter supplied.

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: Fix 4k tx bd segmentation code</title>
<updated>2011-11-04T21:31:47+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2011-11-04T09:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b9e454826f22e17d1945bd282834c87aef8d0f95'/>
<id>b9e454826f22e17d1945bd282834c87aef8d0f95</id>
<content type='text'>
The new 4k tx bd segmentation code had a bug in the error cleanup path.
If the driver did not map all the physical fragments, the abort path
would wind up advancing the producer index beyond the point where the
setup code stopped.  This would ultimately turn into a tx recovery error
where the driver would expect the skb pointer to be set when it isn't.
This patch fixes the problem, and then makes the code a little easier to
understand.

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>
The new 4k tx bd segmentation code had a bug in the error cleanup path.
If the driver did not map all the physical fragments, the abort path
would wind up advancing the producer index beyond the point where the
setup code stopped.  This would ultimately turn into a tx recovery error
where the driver would expect the skb pointer to be set when it isn't.
This patch fixes the problem, and then makes the code a little easier to
understand.

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>
