<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/net/ethernet, branch v4.11.5</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.11.5</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.11.5'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2017-06-14T13:07:48+00:00</updated>
<entry>
<title>net: qcom/emac: do not use hardware mdio automatic polling</title>
<updated>2017-06-14T13:07:48+00:00</updated>
<author>
<name>Timur Tabi</name>
<email>timur@codeaurora.org</email>
</author>
<published>2017-06-01T21:08:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3e857aaa8f30b7658cf28d4b8efa67f3d1e9abc7'/>
<id>urn:sha1:3e857aaa8f30b7658cf28d4b8efa67f3d1e9abc7</id>
<content type='text'>
commit 246096690be0742d9bb5f3456d2cb95b68f7b46d upstream.

Use software polling (PHY_POLL) to check for link state changes instead
of relying on the EMAC's hardware polling feature.  Some PHY drivers
are unable to get a functioning link because the HW polling is not
robust enough.

The EMAC is able to poll the PHY on the MDIO bus looking for link state
changes (via the Link Status bit in the Status Register at address 0x1).
When the link state changes, the EMAC triggers an interrupt and tells the
driver what the new state is.  The feature eliminates the need for
software to poll the MDIO bus.

Unfortunately, this feature is incompatible with phylib, because it
ignores everything that the PHY core and PHY drivers are trying to do.
In particular:

1. It assumes a compatible register set, so PHYs with different registers
   may not work.

2. It doesn't allow for hardware errata that have work-arounds implemented
   in the PHY driver.

3. It doesn't support multiple register pages. If the PHY core switches
   the register set to another page, the EMAC won't know the page has
   changed and will still attempt to read the same PHY register.

4. It only checks the copper side of the link, not the SGMII side.  Some
   PHY drivers (e.g. at803x) may also check the SGMII side, and
   report the link as not ready during autonegotiation if the SGMII link
   is still down.  Phylib then waits for another interrupt to query
   the PHY again, but the EMAC won't send another interrupt because it
   thinks the link is up.

Tested-by: Manoj Iyer &lt;manoj.iyer@canonical.com&gt;
Signed-off-by: Timur Tabi &lt;timur@codeaurora.org&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>net: stmmac: fix completely hung TX when using TSO</title>
<updated>2017-06-14T13:07:35+00:00</updated>
<author>
<name>Niklas Cassel</name>
<email>niklas.cassel@axis.com</email>
</author>
<published>2017-06-06T07:25:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6bf499d388662b2ec338ae502b8155115aecaef8'/>
<id>urn:sha1:6bf499d388662b2ec338ae502b8155115aecaef8</id>
<content type='text'>
[ Upstream commit 426849e6611f2092553f8d53372ae310818a6292 ]

stmmac_tso_allocator can fail to set the Last Descriptor bit
on a descriptor that actually was the last descriptor.

This happens when the buffer of the last descriptor ends
up having a size of exactly TSO_MAX_BUFF_SIZE.

When the IP eventually reaches the next last descriptor,
which actually has the bit set, the DMA will hang.

When the DMA hangs, we get a tx timeout, however,
since stmmac does not do a complete reset of the IP
in stmmac_tx_timeout, we end up in a state with
completely hung TX.

Signed-off-by: Niklas Cassel &lt;niklas.cassel@axis.com&gt;
Acked-by: Giuseppe Cavallaro &lt;peppe.cavallaro@st.com&gt;
Acked-by: Alexandre TORGUE &lt;alexandre.torgue@st.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>net: ethoc: enable NAPI before poll may be scheduled</title>
<updated>2017-06-14T13:07:35+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2017-06-06T01:31:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d44184237a9d9e35e729302e3b3a8cd0d5931736'/>
<id>urn:sha1:d44184237a9d9e35e729302e3b3a8cd0d5931736</id>
<content type='text'>
[ Upstream commit d220b942a4b6a0640aee78841608f4aa5e8e185e ]

ethoc_reset enables device interrupts, ethoc_interrupt may schedule a
NAPI poll before NAPI is enabled in the ethoc_open, which results in
device being unable to send or receive anything until it's closed and
reopened. In case the device is flooded with ingress packets it may be
unable to recover at all.
Move napi_enable above ethoc_reset in the ethoc_open to fix that.

Fixes: a1702857724f ("net: Add support for the OpenCores 10/100 Mbps Ethernet MAC.")
Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Reviewed-by: Tobias Klauser &lt;tklauser@distanz.ch&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.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>ravb: Fix use-after-free on `ifconfig eth0 down`</title>
<updated>2017-06-14T13:07:34+00:00</updated>
<author>
<name>Eugeniu Rosca</name>
<email>erosca@de.adit-jv.com</email>
</author>
<published>2017-06-05T22:08:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d673c7641c4de8c64231b862be75eef234b3e475'/>
<id>urn:sha1:d673c7641c4de8c64231b862be75eef234b3e475</id>
<content type='text'>
[ Upstream commit 79514ef670e9e575a1fe36922268c439d0f0ca8a ]

Commit a47b70ea86bd ("ravb: unmap descriptors when freeing rings") has
introduced the issue seen in [1] reproduced on H3ULCB board.

Fix this by relocating the RX skb ringbuffer free operation, so that
swiotlb page unmapping can be done first. Freeing of aligned TX buffers
is not relevant to the issue seen in [1]. Still, reposition TX free
calls as well, to have all kfree() operations performed consistently
_after_ dma_unmap_*()/dma_free_*().

[1] Console screenshot with the problem reproduced:

salvator-x login: root
root@salvator-x:~# ifconfig eth0 up
Micrel KSZ9031 Gigabit PHY e6800000.ethernet-ffffffff:00: \
       attached PHY driver [Micrel KSZ9031 Gigabit PHY]   \
       (mii_bus:phy_addr=e6800000.ethernet-ffffffff:00, irq=235)
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
root@salvator-x:~#
root@salvator-x:~# ifconfig eth0 down

==================================================================
BUG: KASAN: use-after-free in swiotlb_tbl_unmap_single+0xc4/0x35c
Write of size 1538 at addr ffff8006d884f780 by task ifconfig/1649

CPU: 0 PID: 1649 Comm: ifconfig Not tainted 4.12.0-rc4-00004-g112eb07287d1 #32
Hardware name: Renesas H3ULCB board based on r8a7795 (DT)
Call trace:
[&lt;ffff20000808f11c&gt;] dump_backtrace+0x0/0x3a4
[&lt;ffff20000808f4d4&gt;] show_stack+0x14/0x1c
[&lt;ffff20000865970c&gt;] dump_stack+0xf8/0x150
[&lt;ffff20000831f8b0&gt;] print_address_description+0x7c/0x330
[&lt;ffff200008320010&gt;] kasan_report+0x2e0/0x2f4
[&lt;ffff20000831eac0&gt;] check_memory_region+0x20/0x14c
[&lt;ffff20000831f054&gt;] memcpy+0x48/0x68
[&lt;ffff20000869ed50&gt;] swiotlb_tbl_unmap_single+0xc4/0x35c
[&lt;ffff20000869fcf4&gt;] unmap_single+0x90/0xa4
[&lt;ffff20000869fd14&gt;] swiotlb_unmap_page+0xc/0x14
[&lt;ffff2000080a2974&gt;] __swiotlb_unmap_page+0xcc/0xe4
[&lt;ffff2000088acdb8&gt;] ravb_ring_free+0x514/0x870
[&lt;ffff2000088b25dc&gt;] ravb_close+0x288/0x36c
[&lt;ffff200008aaf8c4&gt;] __dev_close_many+0x14c/0x174
[&lt;ffff200008aaf9b4&gt;] __dev_close+0xc8/0x144
[&lt;ffff200008ac2100&gt;] __dev_change_flags+0xd8/0x194
[&lt;ffff200008ac221c&gt;] dev_change_flags+0x60/0xb0
[&lt;ffff200008ba2dec&gt;] devinet_ioctl+0x484/0x9d4
[&lt;ffff200008ba7b78&gt;] inet_ioctl+0x190/0x194
[&lt;ffff200008a78c44&gt;] sock_do_ioctl+0x78/0xa8
[&lt;ffff200008a7a128&gt;] sock_ioctl+0x110/0x3c4
[&lt;ffff200008365a70&gt;] vfs_ioctl+0x90/0xa0
[&lt;ffff200008365dbc&gt;] do_vfs_ioctl+0x148/0xc38
[&lt;ffff2000083668f0&gt;] SyS_ioctl+0x44/0x74
[&lt;ffff200008083770&gt;] el0_svc_naked+0x24/0x28

The buggy address belongs to the page:
page:ffff7e001b6213c0 count:0 mapcount:0 mapping:          (null) index:0x0
flags: 0x4000000000000000()
raw: 4000000000000000 0000000000000000 0000000000000000 00000000ffffffff
raw: 0000000000000000 ffff7e001b6213e0 0000000000000000 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8006d884f680: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff8006d884f700: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
&gt;ffff8006d884f780: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                   ^
 ffff8006d884f800: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff8006d884f880: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================
Disabling lock debugging due to kernel taint
root@salvator-x:~#

Fixes: a47b70ea86bd ("ravb: unmap descriptors when freeing rings")
Signed-off-by: Eugeniu Rosca &lt;erosca@de.adit-jv.com&gt;
Acked-by: Sergei Shtylyov &lt;sergei.shtylyov@cogentembedded.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>cxgb4: avoid enabling napi twice to the same queue</title>
<updated>2017-06-14T13:07:33+00:00</updated>
<author>
<name>Ganesh Goudar</name>
<email>ganeshgr@chelsio.com</email>
</author>
<published>2017-05-31T12:56:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fb62fe105bf344834ea5452c8348aba2bbd4d6ba'/>
<id>urn:sha1:fb62fe105bf344834ea5452c8348aba2bbd4d6ba</id>
<content type='text'>
[ Upstream commit e7519f9926f1d0d11c776eb0475eb098c7760f68 ]

Take uld mutex to avoid race between cxgb_up() and
cxgb4_register_uld() to enable napi for the same uld
queue.

Signed-off-by: Ganesh Goudar &lt;ganeshgr@chelsio.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>net: systemport: Fix missing Wake-on-LAN interrupt for SYSTEMPORT Lite</title>
<updated>2017-06-14T13:07:33+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2017-06-02T01:02:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ce45e4f99594d1c9243a6eb7a5947c22af845a0b'/>
<id>urn:sha1:ce45e4f99594d1c9243a6eb7a5947c22af845a0b</id>
<content type='text'>
[ Upstream commit d31353cd753c443ace5723d6878a39f393a0c136 ]

On SYSTEMPORT Lite, since we have the main interrupt source in the first
cell, the second cell is the Wake-on-LAN interrupt, yet the code was not
properly updated to fetch the second cell, and instead looked at the
third and non-existing cell for Wake-on-LAN.

Fixes: 44a4524c54af ("net: systemport: Add support for SYSTEMPORT Lite")
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.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 Multi-Cos</title>
<updated>2017-06-14T13:07:32+00:00</updated>
<author>
<name>Mintz, Yuval</name>
<email>Yuval.Mintz@cavium.com</email>
</author>
<published>2017-06-01T12:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f5f67e441e3888219c625c39f93e9bba83d0828a'/>
<id>urn:sha1:f5f67e441e3888219c625c39f93e9bba83d0828a</id>
<content type='text'>
[ Upstream commit 3968d38917eb9bd0cd391265f6c9c538d9b33ffa ]

Apparently multi-cos isn't working for bnx2x quite some time -
driver implements ndo_select_queue() to allow queue-selection
for FCoE, but the regular L2 flow would cause it to modulo the
fallback's result by the number of queues.
The fallback would return a queue matching the needed tc
[via __skb_tx_hash()], but since the modulo is by the number of TSS
queues where number of TCs is not accounted, transmission would always
be done by a queue configured into using TC0.

Fixes: ada7c19e6d27 ("bnx2x: use XPS if possible for bnx2x_select_queue instead of pure hash")
Signed-off-by: Yuval Mintz &lt;Yuval.Mintz@cavium.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>be2net: Fix offload features for Q-in-Q packets</title>
<updated>2017-06-07T10:10:03+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevich@gmail.com</email>
</author>
<published>2017-05-23T17:38:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=acc866e9b53eb04a397750d1461c34c3c9622490'/>
<id>urn:sha1:acc866e9b53eb04a397750d1461c34c3c9622490</id>
<content type='text'>
[ Upstream commit cc6e9de62a7f84c9293a2ea41bc412b55bb46e85 ]

At least some of the be2net cards do not seem to be capabled
of performing checksum offload computions on Q-in-Q packets.
In these case, the recevied checksum on the remote is invalid
and TCP syn packets are dropped.

This patch adds a call to check disbled acceleration features
on Q-in-Q tagged traffic.

CC: Sathya Perla &lt;sathya.perla@broadcom.com&gt;
CC: Ajit Khaparde &lt;ajit.khaparde@broadcom.com&gt;
CC: Sriharsha Basavapatna &lt;sriharsha.basavapatna@broadcom.com&gt;
CC: Somnath Kotur &lt;somnath.kotur@broadcom.com&gt;
Signed-off-by: Vladislav Yasevich &lt;vyasevic@redhat.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>net/mlx5: Avoid using pending command interface slots</title>
<updated>2017-06-07T10:10:03+00:00</updated>
<author>
<name>Mohamad Haj Yahia</name>
<email>mohamad@mellanox.com</email>
</author>
<published>2017-02-23T09:19:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bea278025cbc41556fd8e7edd22a64d84a60ca2f'/>
<id>urn:sha1:bea278025cbc41556fd8e7edd22a64d84a60ca2f</id>
<content type='text'>
[ Upstream commit 73dd3a4839c1d27c36d4dcc92e1ff44225ecbeb7 ]

Currently when firmware command gets stuck or it takes long time to
complete, the driver command will get timeout and the command slot is
freed and can be used for new commands, and if the firmware receive new
command on the old busy slot its behavior is unexpected and this could
be harmful.
To fix this when the driver command gets timeout we return failure,
but we don't free the command slot and we wait for the firmware to
explicitly respond to that command.
Once all the entries are busy we will stop processing new firmware
commands.

Fixes: 9cba4ebcf374 ('net/mlx5: Fix potential deadlock in command mode change')
Signed-off-by: Mohamad Haj Yahia &lt;mohamad@mellanox.com&gt;
Cc: kernel-team@fb.com
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>net/mlx5e: Fix ethtool pause support and advertise reporting</title>
<updated>2017-06-07T10:10:01+00:00</updated>
<author>
<name>Gal Pressman</name>
<email>galp@mellanox.com</email>
</author>
<published>2017-04-19T11:35:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cc1d2a620dd0aeb55e641f5a406bab631aa6842c'/>
<id>urn:sha1:cc1d2a620dd0aeb55e641f5a406bab631aa6842c</id>
<content type='text'>
[ Upstream commit e3c19503712d6360239b19c14cded56dd63c40d7 ]

Pause bit should set when RX pause is on, not TX pause.
Also, setting Asym_Pause is incorrect, and should be turned off.

Fixes: 665bc53969d7 ("net/mlx5e: Use new ethtool get/set link ksettings API")
Signed-off-by: Gal Pressman &lt;galp@mellanox.com&gt;
Cc: kernel-team@fb.com
Signed-off-by: Saeed Mahameed &lt;saeedm@mellanox.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
