<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/ethernet/broadcom, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-07-10T16:45:36Z</updated>
<entry>
<title>bnx2x: fix lockdep splat</title>
<updated>2015-07-10T16:45:36Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2015-06-26T05:32:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c41d9559f536612a8c1201ccaf53b6f992842aa0'/>
<id>urn:sha1:c41d9559f536612a8c1201ccaf53b6f992842aa0</id>
<content type='text'>
[ Upstream commit d53c66a5b80698620f7c9ba2372fff4017e987b8 ]

Michel reported following lockdep splat

[   44.718117] INFO: trying to register non-static key.
[   44.723081] the code is fine but needs lockdep annotation.
[   44.728559] turning off the locking correctness validator.
[   44.734036] CPU: 8 PID: 5483 Comm: ethtool Not tainted 4.1.0
[   44.770289] Call Trace:
[   44.772741]  [&lt;ffffffff816eb1cd&gt;] dump_stack+0x4c/0x65
[   44.777879]  [&lt;ffffffff8111d921&gt;] ? console_unlock+0x1f1/0x510
[   44.783708]  [&lt;ffffffff811121f5&gt;] __lock_acquire+0x1d05/0x1f10
[   44.789538]  [&lt;ffffffff8111370a&gt;] ? mark_held_locks+0x6a/0x90
[   44.795276]  [&lt;ffffffff81113835&gt;] ? trace_hardirqs_on_caller+0x105/0x1d0
[   44.801967]  [&lt;ffffffff8111390d&gt;] ? trace_hardirqs_on+0xd/0x10
[   44.807793]  [&lt;ffffffff811330fa&gt;] ? hrtimer_try_to_cancel+0x4a/0x250
[   44.814142]  [&lt;ffffffff81112ba6&gt;] lock_acquire+0xb6/0x290
[   44.819537]  [&lt;ffffffff810d6675&gt;] ? flush_work+0x5/0x280
[   44.824844]  [&lt;ffffffff810d66ad&gt;] flush_work+0x3d/0x280
[   44.830061]  [&lt;ffffffff810d6675&gt;] ? flush_work+0x5/0x280
[   44.835366]  [&lt;ffffffff816f3c43&gt;] ? schedule_hrtimeout_range+0x13/0x20
[   44.841889]  [&lt;ffffffff8112ec9b&gt;] ? usleep_range+0x4b/0x50
[   44.847365]  [&lt;ffffffff8111370a&gt;] ? mark_held_locks+0x6a/0x90
[   44.853102]  [&lt;ffffffff810d8585&gt;] ? __cancel_work_timer+0x105/0x1c0
[   44.859359]  [&lt;ffffffff81113835&gt;] ? trace_hardirqs_on_caller+0x105/0x1d0
[   44.866045]  [&lt;ffffffff810d851f&gt;] __cancel_work_timer+0x9f/0x1c0
[   44.872048]  [&lt;ffffffffa0010982&gt;] ? bnx2x_func_stop+0x42/0x90 [bnx2x]
[   44.878481]  [&lt;ffffffff810d8670&gt;] cancel_work_sync+0x10/0x20
[   44.884134]  [&lt;ffffffffa00259e5&gt;] bnx2x_chip_cleanup+0x245/0x730 [bnx2x]
[   44.890829]  [&lt;ffffffff8110ce02&gt;] ? up+0x32/0x50
[   44.895439]  [&lt;ffffffff811306b5&gt;] ? del_timer_sync+0x5/0xd0
[   44.901005]  [&lt;ffffffffa005596d&gt;] bnx2x_nic_unload+0x20d/0x8e0 [bnx2x]
[   44.907527]  [&lt;ffffffff811f1aef&gt;] ? might_fault+0x5f/0xb0
[   44.912921]  [&lt;ffffffffa005851c&gt;] bnx2x_reload_if_running+0x2c/0x50 [bnx2x]
[   44.919879]  [&lt;ffffffffa005a3c5&gt;] bnx2x_set_ringparam+0x2b5/0x460 [bnx2x]
[   44.926664]  [&lt;ffffffff815d498b&gt;] dev_ethtool+0x55b/0x1c40
[   44.932148]  [&lt;ffffffff815dfdc7&gt;] ? rtnl_lock+0x17/0x20
[   44.937364]  [&lt;ffffffff815e7f8b&gt;] dev_ioctl+0x17b/0x630
[   44.942582]  [&lt;ffffffff815abf8d&gt;] sock_do_ioctl+0x5d/0x70
[   44.947972]  [&lt;ffffffff815ac013&gt;] sock_ioctl+0x73/0x280
[   44.953192]  [&lt;ffffffff8124c1c8&gt;] do_vfs_ioctl+0x88/0x5b0
[   44.958587]  [&lt;ffffffff8110d0b3&gt;] ? up_read+0x23/0x40
[   44.963631]  [&lt;ffffffff812584cc&gt;] ? __fget_light+0x6c/0xa0
[   44.969105]  [&lt;ffffffff8124c781&gt;] SyS_ioctl+0x91/0xb0
[   44.974149]  [&lt;ffffffff816f4dd7&gt;] system_call_fastpath+0x12/0x6f

As bnx2x_init_ptp() is only called if bp-&gt;flags contains PTP_SUPPORTED,
we also need to guard bnx2x_stop_ptp() with same condition, otherwise
ptp_task workqueue is not initialized and kernel barfs on
cancel_work_sync()

Fixes: eeed018cbfa30 ("bnx2x: Add timestamping and PTP hardware clock support")
Reported-by: Michel Lespinasse &lt;walken@google.com&gt;
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Michal Kalderon &lt;Michal.Kalderon@qlogic.com&gt;
Cc: Ariel Elior &lt;Ariel.Elior@qlogic.com&gt;
Cc: Yuval Mintz &lt;Yuval.Mintz@qlogic.com&gt;
Cc: David Decotigny &lt;decot@google.com&gt;
Acked-by: Sony Chacko &lt;sony.chacko@qlogic.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>
</entry>
<entry>
<title>bnx2x: Fix busy_poll vs netpoll</title>
<updated>2015-04-29T08:22:17Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2015-04-15T01:45:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=db35b1ca6a0b66e127232486d2095d6e8aaed7d4'/>
<id>urn:sha1:db35b1ca6a0b66e127232486d2095d6e8aaed7d4</id>
<content type='text'>
[ Upstream commit 074975d0374333f656c48487aa046a21a9b9d7a1 ]

Commit 9a2620c877454 ("bnx2x: prevent WARN during driver unload")
switched the napi/busy_lock locking mechanism from spin_lock() into
spin_lock_bh(), breaking inter-operability with netconsole, as netpoll
disables interrupts prior to calling our napi mechanism.

This switches the driver into using atomic assignments instead of the
spinlock mechanisms previously employed.

Based on initial patch from Yuval Mintz &amp; Ariel Elior

I basically added softirq starvation avoidance, and mixture
of atomic operations, plain writes and barriers.

Note this slightly reduces the overhead for this driver when no
busy_poll sockets are in use.

Fixes: 9a2620c877454 ("bnx2x: prevent WARN during driver unload")
Signed-off-by: Eric Dumazet &lt;edumazet@google.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>
</entry>
<entry>
<title>bnx2x: Fix kdump when iommu=on</title>
<updated>2015-04-01T16:30:39Z</updated>
<author>
<name>Yuval Mintz</name>
</author>
<published>2015-04-01T07:02:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da254fbc6357a66a127e4e4e234b4f9c555d5ed1'/>
<id>urn:sha1:da254fbc6357a66a127e4e4e234b4f9c555d5ed1</id>
<content type='text'>
When IOMM-vtd is active, once main kernel crashes unfinished DMAE transactions
will be blocked, putting the HW in an error state which will cause further
transactions to timeout.

Current employed logic uses wrong macros, causing the first function to be the
only function that cleanups that error state during its probe/load.

This patch allows all the functions to successfully re-load in kdump kernel.

Signed-off-by: Yuval Mintz &lt;Yuval.Mintz@qlogic.com&gt;
Signed-off-by: Ariel Elior &lt;Ariel.Elior@qlogic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bnx2x: Fix kdump on 4-port device</title>
<updated>2015-04-01T16:30:38Z</updated>
<author>
<name>Yuval Mintz</name>
</author>
<published>2015-04-01T07:02:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3d6b72534a109be4353b161a09a5683b441d0941'/>
<id>urn:sha1:3d6b72534a109be4353b161a09a5683b441d0941</id>
<content type='text'>
When running in a kdump kernel, it's very likely that due to sync. loss with
management firmware the first PCI function to probe and reach the previous
unload flow would decide it can reset the chip and continue onward. While doing
so, it will only close its own Rx port.

On a 4-port device where 2nd port on engine is a 1g-port, the 2nd port would
allow ingress traffic after the chip is reset [assuming it was active on the
first kernel]. This would later cause a HW attention.

This changes driver flow to close both ports' 1g capabilities during the
previous driver unload flow prior to the chip reset.

Signed-off-by: Yuval Mintz &lt;Yuval.Mintz@qlogic.com&gt;
Signed-off-by: Ariel Elior &lt;Ariel.Elior@qlogic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bnx2x: Fix statistics locking scheme</title>
<updated>2015-03-24T02:38:24Z</updated>
<author>
<name>Yuval Mintz</name>
</author>
<published>2015-03-23T08:56:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dff173de84958a677ce0d24b1da3cdc3a32b4238'/>
<id>urn:sha1:dff173de84958a677ce0d24b1da3cdc3a32b4238</id>
<content type='text'>
Statistics' state-machine in bnx2x driver must be synced with various driver
flows, but its current locking scheme manages to be wasteful [using 2 locks +
additional local variable] and prone to race-conditions at the same time,
as the state-machine and 'action' are being accessed under different locks.

In addition, current 'safe exec' isn't in fact safe, since the only guarantee
it gives is that DMA transactions are over, but ramrods might still be running.

This patch cleans up said logic, leaving us with a single lock for the entire
flow and removing the possible races.

Changes from v2:
	- Switched into mutex locking from semaphore locking.
	- Release locks on error flows.

Changes from v1:
	Failure to acquire lock fails flow instead of printing a warning and
	allowing access to the critical section.

Signed-off-by: Yuval Mintz &lt;Yuval.Mintz@qlogic.com&gt;
Signed-off-by: Ariel Elior &lt;Ariel.Elior@qlogic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bnx2x: fix encapsulation features on 57710/57711</title>
<updated>2015-03-16T21:05:48Z</updated>
<author>
<name>Michal Schmidt</name>
</author>
<published>2015-03-16T15:15:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a8e0c246dacfb0558e801ab81af3f670056fd1b2'/>
<id>urn:sha1:a8e0c246dacfb0558e801ab81af3f670056fd1b2</id>
<content type='text'>
E1x chips (57710, 57711(E)) have no support for encapsulation
offload. bnx2x incorrectly advertises the support as available.

Setting of those features is conditional on "!CHIP_IS_E1x(bp)", but
the bp struct is not initialized yet at this point and consequently
any chip passes the check.
The check must use the "chip_is_e1x" local variable instead to work
correctly.

Signed-off-by: Michal Schmidt &lt;mschmidt@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bgmac: Clean warning messages</title>
<updated>2015-03-09T02:55:48Z</updated>
<author>
<name>Peter Senna Tschudin</name>
</author>
<published>2015-03-07T11:10:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8edfe3b6fad28da191c8fa15e4e0d8f7335a0091'/>
<id>urn:sha1:8edfe3b6fad28da191c8fa15e4e0d8f7335a0091</id>
<content type='text'>
On my test environment the throughput of a file transfer drops
from 4.4MBps to 116KBps due the number of repeated warning
messages. This patch removes the warning messages as DMA works
correctly with addresses using 0xC0000000 bits.

Signed-off-by: Peter Senna Tschudin &lt;peter.senna@gmail.com&gt;
Acked-by: Rafał Miłecki &lt;zajec5@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bcmgenet: properly disable password matching</title>
<updated>2015-03-06T02:15:21Z</updated>
<author>
<name>Florian Fainelli</name>
</author>
<published>2015-03-04T19:43:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=386668a61f90412a61a12719d15dfec58d0ece1c'/>
<id>urn:sha1:386668a61f90412a61a12719d15dfec58d0ece1c</id>
<content type='text'>
bcmgenet_set_wol() correctly sets MPD_PW_EN when a password is specified
to match magic packets against, however, when we switch from a
password-matching to a matching without password we would leave this bit
turned on, and GENET would only match magic packets with passwords.

This can be reproduced using the following sequence:

ethtool -s eth0 wol g
ethtool -s eth0 wol s sopass 00:11:22:33:44:55
ethtool -s eth0 wol g

The simple fix is to clear the MPD_PWD_EN bit when WAKE_MAGICSECURE is
not set.

Fixes: c51de7f3976b ("net: bcmgenet: add Wake-on-LAN support code")
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bnx2x: Force fundamental reset for EEH recovery</title>
<updated>2015-03-05T20:38:24Z</updated>
<author>
<name>Brian King</name>
</author>
<published>2015-03-04T14:09:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da293700568ed3d96fcf062ac15d7d7c41377f11'/>
<id>urn:sha1:da293700568ed3d96fcf062ac15d7d7c41377f11</id>
<content type='text'>
EEH recovery for bnx2x based adapters is not reliable on all Power
systems using the default hot reset, which can result in an
unrecoverable EEH error. Forcing the use of fundamental reset
during EEH recovery fixes this.

Cc: stable&lt;stable@vger.kernel.org&gt;
Signed-off-by: Brian King &lt;brking@linux.vnet.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>bcm63xx_enet: fix poll callback.</title>
<updated>2015-03-04T20:44:52Z</updated>
<author>
<name>Nicolas Schichan</name>
</author>
<published>2015-03-03T11:45:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd33ccf5fd87e94342b6cf8990e2e1570632c276'/>
<id>urn:sha1:cd33ccf5fd87e94342b6cf8990e2e1570632c276</id>
<content type='text'>
In case there was some tx buffer reclaimed and not enough rx packets
to consume the whole budget, napi_complete would not be called and
interrupts would be kept disabled, effectively resulting in the
network core never to call the poll callback again and no rx/tx
interrupts to be fired either.

Fix that by only accounting the rx work done in the poll callback.

Signed-off-by: Nicolas Schichan &lt;nschichan@freebox.fr&gt;
Acked-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
