<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/ethernet/broadcom, branch v3.16</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 crash during TSO tunneling</title>
<updated>2014-07-25T06:43:57+00:00</updated>
<author>
<name>Dmitry Kravkov</name>
<email>Dmitry.Kravkov@qlogic.com</email>
</author>
<published>2014-07-24T15:54:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fe26566d8a05151ba1dce75081f6270f73ec4ae1'/>
<id>fe26566d8a05151ba1dce75081f6270f73ec4ae1</id>
<content type='text'>
When TSO packet is transmitted additional BD w/o mapping is used
to describe the packed. The BD needs special handling in tx
completion.

kernel: Call Trace:
kernel: &lt;IRQ&gt;  [&lt;ffffffff815e19ba&gt;] dump_stack+0x19/0x1b
kernel: [&lt;ffffffff8105dee1&gt;] warn_slowpath_common+0x61/0x80
kernel: [&lt;ffffffff8105df5c&gt;] warn_slowpath_fmt+0x5c/0x80
kernel: [&lt;ffffffff814a8c0d&gt;] ? find_iova+0x4d/0x90
kernel: [&lt;ffffffff814ab0e2&gt;] intel_unmap_page.part.36+0x142/0x160
kernel: [&lt;ffffffff814ad0e6&gt;] intel_unmap_page+0x26/0x30
kernel: [&lt;ffffffffa01f55d7&gt;] bnx2x_free_tx_pkt+0x157/0x2b0 [bnx2x]
kernel: [&lt;ffffffffa01f8dac&gt;] bnx2x_tx_int+0xac/0x220 [bnx2x]
kernel: [&lt;ffffffff8101a0d9&gt;] ? read_tsc+0x9/0x20
kernel: [&lt;ffffffffa01f8fdb&gt;] bnx2x_poll+0xbb/0x3c0 [bnx2x]
kernel: [&lt;ffffffff814d041a&gt;] net_rx_action+0x15a/0x250
kernel: [&lt;ffffffff81067047&gt;] __do_softirq+0xf7/0x290
kernel: [&lt;ffffffff815f3a5c&gt;] call_softirq+0x1c/0x30
kernel: [&lt;ffffffff81014d25&gt;] do_softirq+0x55/0x90
kernel: [&lt;ffffffff810673e5&gt;] irq_exit+0x115/0x120
kernel: [&lt;ffffffff815f4358&gt;] do_IRQ+0x58/0xf0
kernel: [&lt;ffffffff815e94ad&gt;] common_interrupt+0x6d/0x6d
kernel: &lt;EOI&gt;  [&lt;ffffffff810bbff7&gt;] ? clockevents_notify+0x127/0x140
kernel: [&lt;ffffffff814834df&gt;] ? cpuidle_enter_state+0x4f/0xc0
kernel: [&lt;ffffffff81483615&gt;] cpuidle_idle_call+0xc5/0x200
kernel: [&lt;ffffffff8101bc7e&gt;] arch_cpu_idle+0xe/0x30
kernel: [&lt;ffffffff810b4725&gt;] cpu_startup_entry+0xf5/0x290
kernel: [&lt;ffffffff815cfee1&gt;] start_secondary+0x265/0x27b
kernel: ---[ end trace 11aa7726f18d7e80 ]---

Fixes: a848ade408b ("bnx2x: add CSUM and TSO support for encapsulation protocols")
Reported-by: Yulong Pei &lt;ypei@redhat.com&gt;
Cc: Michal Schmidt &lt;mschmidt@redhat.com&gt;
Signed-off-by: Dmitry Kravkov &lt;Dmitry.Kravkov@qlogic.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>
When TSO packet is transmitted additional BD w/o mapping is used
to describe the packed. The BD needs special handling in tx
completion.

kernel: Call Trace:
kernel: &lt;IRQ&gt;  [&lt;ffffffff815e19ba&gt;] dump_stack+0x19/0x1b
kernel: [&lt;ffffffff8105dee1&gt;] warn_slowpath_common+0x61/0x80
kernel: [&lt;ffffffff8105df5c&gt;] warn_slowpath_fmt+0x5c/0x80
kernel: [&lt;ffffffff814a8c0d&gt;] ? find_iova+0x4d/0x90
kernel: [&lt;ffffffff814ab0e2&gt;] intel_unmap_page.part.36+0x142/0x160
kernel: [&lt;ffffffff814ad0e6&gt;] intel_unmap_page+0x26/0x30
kernel: [&lt;ffffffffa01f55d7&gt;] bnx2x_free_tx_pkt+0x157/0x2b0 [bnx2x]
kernel: [&lt;ffffffffa01f8dac&gt;] bnx2x_tx_int+0xac/0x220 [bnx2x]
kernel: [&lt;ffffffff8101a0d9&gt;] ? read_tsc+0x9/0x20
kernel: [&lt;ffffffffa01f8fdb&gt;] bnx2x_poll+0xbb/0x3c0 [bnx2x]
kernel: [&lt;ffffffff814d041a&gt;] net_rx_action+0x15a/0x250
kernel: [&lt;ffffffff81067047&gt;] __do_softirq+0xf7/0x290
kernel: [&lt;ffffffff815f3a5c&gt;] call_softirq+0x1c/0x30
kernel: [&lt;ffffffff81014d25&gt;] do_softirq+0x55/0x90
kernel: [&lt;ffffffff810673e5&gt;] irq_exit+0x115/0x120
kernel: [&lt;ffffffff815f4358&gt;] do_IRQ+0x58/0xf0
kernel: [&lt;ffffffff815e94ad&gt;] common_interrupt+0x6d/0x6d
kernel: &lt;EOI&gt;  [&lt;ffffffff810bbff7&gt;] ? clockevents_notify+0x127/0x140
kernel: [&lt;ffffffff814834df&gt;] ? cpuidle_enter_state+0x4f/0xc0
kernel: [&lt;ffffffff81483615&gt;] cpuidle_idle_call+0xc5/0x200
kernel: [&lt;ffffffff8101bc7e&gt;] arch_cpu_idle+0xe/0x30
kernel: [&lt;ffffffff810b4725&gt;] cpu_startup_entry+0xf5/0x290
kernel: [&lt;ffffffff815cfee1&gt;] start_secondary+0x265/0x27b
kernel: ---[ end trace 11aa7726f18d7e80 ]---

Fixes: a848ade408b ("bnx2x: add CSUM and TSO support for encapsulation protocols")
Reported-by: Yulong Pei &lt;ypei@redhat.com&gt;
Cc: Michal Schmidt &lt;mschmidt@redhat.com&gt;
Signed-off-by: Dmitry Kravkov &lt;Dmitry.Kravkov@qlogic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bnx2x: fix set_setting for some PHYs</title>
<updated>2014-07-25T01:02:08+00:00</updated>
<author>
<name>Yaniv Rosner</name>
<email>Yaniv.Rosner@qlogic.com</email>
</author>
<published>2014-07-23T19:12:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=042d7654ecb68383c392e3c7e86e04de023f65f9'/>
<id>042d7654ecb68383c392e3c7e86e04de023f65f9</id>
<content type='text'>
Allow set_settings() to complete succesfully even if link is
not estabilished and port type isn't known yet.

Signed-off-by: Yaniv Rosner &lt;Yaniv.Rosner@qlogic.com&gt;
Signed-off-by: Dmitry Kravkov &lt;Dmitry.Kravkov@qlogic.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>
Allow set_settings() to complete succesfully even if link is
not estabilished and port type isn't known yet.

Signed-off-by: Yaniv Rosner &lt;Yaniv.Rosner@qlogic.com&gt;
Signed-off-by: Dmitry Kravkov &lt;Dmitry.Kravkov@qlogic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: bcmgenet: correctly pad short packets</title>
<updated>2014-07-23T02:59:19+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-07-22T18:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=474ea9cafc459976827a477f2c30eaf6313cb7c1'/>
<id>474ea9cafc459976827a477f2c30eaf6313cb7c1</id>
<content type='text'>
Packets shorter than ETH_ZLEN were not padded with zeroes, hence leaking
potentially sensitive information. This bug has been present since the
driver got accepted in commit 1c1008c793fa46703a2fee469f4235e1c7984333
("net: bcmgenet: add main driver file").

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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>
Packets shorter than ETH_ZLEN were not padded with zeroes, hence leaking
potentially sensitive information. This bug has been present since the
driver got accepted in commit 1c1008c793fa46703a2fee469f4235e1c7984333
("net: bcmgenet: add main driver file").

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: bcmgenet: fix RGMII_MODE_EN bit</title>
<updated>2014-07-14T05:55:37+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-07-11T23:55:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5a680fad352525c3461ed1f7e3269d31a9128a07'/>
<id>5a680fad352525c3461ed1f7e3269d31a9128a07</id>
<content type='text'>
RGMII_MODE_EN bit was defined to 0, while it is actually 6. It was not
much of a problem on older designs where this was a no-op, and the RGMII
data-path would always be enabled, but newer GENET controllers need to
explicitely enable their RGMII data-pad using this bit.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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>
RGMII_MODE_EN bit was defined to 0, while it is actually 6. It was not
much of a problem on older designs where this was a no-op, and the RGMII
data-path would always be enabled, but newer GENET controllers need to
explicitely enable their RGMII data-pad using this bit.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: bcmgenet: do not set packet length for RX buffers</title>
<updated>2014-07-02T00:25:03+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-06-26T17:26:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b758858c5ceb1b30ae7d04dea6c74821bd7c7d69'/>
<id>b758858c5ceb1b30ae7d04dea6c74821bd7c7d69</id>
<content type='text'>
Hardware will provide this information as soon as we will start
processing incoming packets, so there is no need to set the RX buffer
length during buffer allocation.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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>
Hardware will provide this information as soon as we will start
processing incoming packets, so there is no need to set the RX buffer
length during buffer allocation.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: bcmgenet: start with carrier off</title>
<updated>2014-07-02T00:25:02+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-06-26T17:26:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=219575eb6311ad090e26c675a6e217f5d48780a3'/>
<id>219575eb6311ad090e26c675a6e217f5d48780a3</id>
<content type='text'>
We use the PHY library which will determine the link state for us, make
sure we start with a carrier off until libphy has completed the link
training.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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>
We use the PHY library which will determine the link state for us, make
sure we start with a carrier off until libphy has completed the link
training.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: bcmgenet: disable clock before register_netdev</title>
<updated>2014-07-02T00:25:02+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-06-26T17:26:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0f50ce96b7c0488cffe64255694a2451b4347d09'/>
<id>0f50ce96b7c0488cffe64255694a2451b4347d09</id>
<content type='text'>
As soon as register_netdev() is called, the network device notifiers are
running which means that other parts of the kernel, or user-space
programs can call the network device ndo_open() callback and use the
interface.

Disable the Ethernet device clock before we register the network device
such that we do not create the following situation:

CPU0				CPU1
register_netdev()
				bcmgenet_open()
				clk_prepare_enable()
clk_disable_unprepare()

and leave the hardware block gated off, while we think it should be
gated on.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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>
As soon as register_netdev() is called, the network device notifiers are
running which means that other parts of the kernel, or user-space
programs can call the network device ndo_open() callback and use the
interface.

Disable the Ethernet device clock before we register the network device
such that we do not create the following situation:

CPU0				CPU1
register_netdev()
				bcmgenet_open()
				clk_prepare_enable()
clk_disable_unprepare()

and leave the hardware block gated off, while we think it should be
gated on.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: systemport: fix TX NAPI work done return value</title>
<updated>2014-07-02T00:10:17+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-06-26T17:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=16f62d9bed0cdee5f9341b64cc7144869282122d'/>
<id>16f62d9bed0cdee5f9341b64cc7144869282122d</id>
<content type='text'>
Although we do not limit the number of packets the TX completion
function bcm_sysport_tx_reclaim() is allowed to reclaim, we were still
using its return value as-is. This means that we could hit the WARN() in
net/core/dev.c where work_done &gt;= budget.

Make sure we do exit the NAPI context when the TX ring is empty, and
pretend there was no work to do.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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>
Although we do not limit the number of packets the TX completion
function bcm_sysport_tx_reclaim() is allowed to reclaim, we were still
using its return value as-is. This means that we could hit the WARN() in
net/core/dev.c where work_done &gt;= budget.

Make sure we do exit the NAPI context when the TX ring is empty, and
pretend there was no work to do.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: systemport: fix UniMAC reset logic</title>
<updated>2014-07-02T00:10:16+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-06-26T17:06:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=412bce83ac786197d0b2805c5bcded4d95cdeeb0'/>
<id>412bce83ac786197d0b2805c5bcded4d95cdeeb0</id>
<content type='text'>
The UniMAC CMD_SW_RESET bit is not a self-clearing bit, so we need to
assert it, wait a bit and clear it manually. As a result, umac_reset()
is updated not to return any value. The previous version of the code
simply wrote 0 to the CMD register, which would make the busy-waiting
loop exit immediately, having zero effect.

By writing 0 to the CMD register, we were clearing all bits in the CMD
register, and not using the hardware reset default values which are
set on purpose.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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 UniMAC CMD_SW_RESET bit is not a self-clearing bit, so we need to
assert it, wait a bit and clear it manually. As a result, umac_reset()
is updated not to return any value. The previous version of the code
simply wrote 0 to the CMD register, which would make the busy-waiting
loop exit immediately, having zero effect.

By writing 0 to the CMD register, we were clearing all bits in the CMD
register, and not using the hardware reset default values which are
set on purpose.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: systemport: do not clear IFF_MULTICAST flag</title>
<updated>2014-07-02T00:10:16+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2014-06-26T17:06:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3b140a678834f55602e50e7d6a47663e230434a7'/>
<id>3b140a678834f55602e50e7d6a47663e230434a7</id>
<content type='text'>
The SYSTEMPORT Ethernet MAC supports multicast just fine, it just lacks
any sort of Unicast/Broadcast/Multicasting filtering at the Ethernet MAC
level since that is handled by the front end Ethernet switch, but that
is properly handled by bcm_sysport_set_rx_mode().

Some user-space applications might be relying on the presence of this
flag to prevent using multicast sockets, this also prevents that
interface from joining the IPv6 all-router mcast group.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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 SYSTEMPORT Ethernet MAC supports multicast just fine, it just lacks
any sort of Unicast/Broadcast/Multicasting filtering at the Ethernet MAC
level since that is handled by the front end Ethernet switch, but that
is properly handled by bcm_sysport_set_rx_mode().

Some user-space applications might be relying on the presence of this
flag to prevent using multicast sockets, this also prevents that
interface from joining the IPv6 all-router mcast group.

Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
