<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net, branch v4.20-rc2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>net: dsa: mv88e6xxx: Fix clearing of stats counters</title>
<updated>2018-11-11T18:19:10+00:00</updated>
<author>
<name>Andrew Lunn</name>
<email>andrew@lunn.ch</email>
</author>
<published>2018-11-10T23:41:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a9049ff9214da68df1179a7d5e36b43479abc9b8'/>
<id>a9049ff9214da68df1179a7d5e36b43479abc9b8</id>
<content type='text'>
The mv88e6161 would sometime fail to probe with a timeout waiting for
the switch to complete an operation. This operation is supposed to
clear the statistics counters. However, due to a read/modify/write,
without the needed mask, the operation actually carried out was more
random, with invalid parameters, resulting in the switch not
responding. We need to preserve the histogram mode bits, so apply a
mask to keep them.

Reported-by: Chris Healy &lt;Chris.Healy@zii.aero&gt;
Fixes: 40cff8fca9e3 ("net: dsa: mv88e6xxx: Fix stats histogram mode")
Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&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 mv88e6161 would sometime fail to probe with a timeout waiting for
the switch to complete an operation. This operation is supposed to
clear the statistics counters. However, due to a read/modify/write,
without the needed mask, the operation actually carried out was more
random, with invalid parameters, resulting in the switch not
responding. We need to preserve the histogram mode bits, so apply a
mask to keep them.

Reported-by: Chris Healy &lt;Chris.Healy@zii.aero&gt;
Fixes: 40cff8fca9e3 ("net: dsa: mv88e6xxx: Fix stats histogram mode")
Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: mvneta: correct typo</title>
<updated>2018-11-10T04:10:13+00:00</updated>
<author>
<name>Alexandre Belloni</name>
<email>alexandre.belloni@bootlin.com</email>
</author>
<published>2018-11-09T16:37:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fbd1d5245372e48b494120a30fe0b34b304576c4'/>
<id>fbd1d5245372e48b494120a30fe0b34b304576c4</id>
<content type='text'>
The reserved variable should be named reserved1.

Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.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 reserved variable should be named reserved1.

Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: qualcomm: rmnet: Fix incorrect assignment of real_dev</title>
<updated>2018-11-10T03:45:48+00:00</updated>
<author>
<name>Subash Abhinov Kasiviswanathan</name>
<email>subashab@codeaurora.org</email>
</author>
<published>2018-11-10T01:56:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d02854dc1999ed3e7fd79ec700c64ac23ac0c458'/>
<id>d02854dc1999ed3e7fd79ec700c64ac23ac0c458</id>
<content type='text'>
A null dereference was observed when a sysctl was being set
from userspace and rmnet was stuck trying to complete some actions
in the NETDEV_REGISTER callback. This is because the real_dev is set
only after the device registration handler completes.

sysctl call stack -

&lt;6&gt; Unable to handle kernel NULL pointer dereference at
    virtual address 00000108
&lt;2&gt; pc : rmnet_vnd_get_iflink+0x1c/0x28
&lt;2&gt; lr : dev_get_iflink+0x2c/0x40
&lt;2&gt;  rmnet_vnd_get_iflink+0x1c/0x28
&lt;2&gt;  inet6_fill_ifinfo+0x15c/0x234
&lt;2&gt;  inet6_ifinfo_notify+0x68/0xd4
&lt;2&gt;  ndisc_ifinfo_sysctl_change+0x1b8/0x234
&lt;2&gt;  proc_sys_call_handler+0xac/0x100
&lt;2&gt;  proc_sys_write+0x3c/0x4c
&lt;2&gt;  __vfs_write+0x54/0x14c
&lt;2&gt;  vfs_write+0xcc/0x188
&lt;2&gt;  SyS_write+0x60/0xc0
&lt;2&gt;  el0_svc_naked+0x34/0x38

device register call stack -

&lt;2&gt;  notifier_call_chain+0x84/0xbc
&lt;2&gt;  raw_notifier_call_chain+0x38/0x48
&lt;2&gt;  call_netdevice_notifiers_info+0x40/0x70
&lt;2&gt;  call_netdevice_notifiers+0x38/0x60
&lt;2&gt;  register_netdevice+0x29c/0x3d8
&lt;2&gt;  rmnet_vnd_newlink+0x68/0xe8
&lt;2&gt;  rmnet_newlink+0xa0/0x160
&lt;2&gt;  rtnl_newlink+0x57c/0x6c8
&lt;2&gt;  rtnetlink_rcv_msg+0x1dc/0x328
&lt;2&gt;  netlink_rcv_skb+0xac/0x118
&lt;2&gt;  rtnetlink_rcv+0x24/0x30
&lt;2&gt;  netlink_unicast+0x158/0x1f0
&lt;2&gt;  netlink_sendmsg+0x32c/0x338
&lt;2&gt;  sock_sendmsg+0x44/0x60
&lt;2&gt;  SyS_sendto+0x150/0x1ac
&lt;2&gt;  el0_svc_naked+0x34/0x38

Fixes: b752eff5be24 ("net: qualcomm: rmnet: Implement ndo_get_iflink")
Signed-off-by: Sean Tranchetti &lt;stranche@codeaurora.org&gt;
Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&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>
A null dereference was observed when a sysctl was being set
from userspace and rmnet was stuck trying to complete some actions
in the NETDEV_REGISTER callback. This is because the real_dev is set
only after the device registration handler completes.

sysctl call stack -

&lt;6&gt; Unable to handle kernel NULL pointer dereference at
    virtual address 00000108
&lt;2&gt; pc : rmnet_vnd_get_iflink+0x1c/0x28
&lt;2&gt; lr : dev_get_iflink+0x2c/0x40
&lt;2&gt;  rmnet_vnd_get_iflink+0x1c/0x28
&lt;2&gt;  inet6_fill_ifinfo+0x15c/0x234
&lt;2&gt;  inet6_ifinfo_notify+0x68/0xd4
&lt;2&gt;  ndisc_ifinfo_sysctl_change+0x1b8/0x234
&lt;2&gt;  proc_sys_call_handler+0xac/0x100
&lt;2&gt;  proc_sys_write+0x3c/0x4c
&lt;2&gt;  __vfs_write+0x54/0x14c
&lt;2&gt;  vfs_write+0xcc/0x188
&lt;2&gt;  SyS_write+0x60/0xc0
&lt;2&gt;  el0_svc_naked+0x34/0x38

device register call stack -

&lt;2&gt;  notifier_call_chain+0x84/0xbc
&lt;2&gt;  raw_notifier_call_chain+0x38/0x48
&lt;2&gt;  call_netdevice_notifiers_info+0x40/0x70
&lt;2&gt;  call_netdevice_notifiers+0x38/0x60
&lt;2&gt;  register_netdevice+0x29c/0x3d8
&lt;2&gt;  rmnet_vnd_newlink+0x68/0xe8
&lt;2&gt;  rmnet_newlink+0xa0/0x160
&lt;2&gt;  rtnl_newlink+0x57c/0x6c8
&lt;2&gt;  rtnetlink_rcv_msg+0x1dc/0x328
&lt;2&gt;  netlink_rcv_skb+0xac/0x118
&lt;2&gt;  rtnetlink_rcv+0x24/0x30
&lt;2&gt;  netlink_unicast+0x158/0x1f0
&lt;2&gt;  netlink_sendmsg+0x32c/0x338
&lt;2&gt;  sock_sendmsg+0x44/0x60
&lt;2&gt;  SyS_sendto+0x150/0x1ac
&lt;2&gt;  el0_svc_naked+0x34/0x38

Fixes: b752eff5be24 ("net: qualcomm: rmnet: Implement ndo_get_iflink")
Signed-off-by: Sean Tranchetti &lt;stranche@codeaurora.org&gt;
Signed-off-by: Subash Abhinov Kasiviswanathan &lt;subashab@codeaurora.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: aquantia: allow rx checksum offload configuration</title>
<updated>2018-11-09T23:38:10+00:00</updated>
<author>
<name>Dmitry Bogdanov</name>
<email>dmitry.bogdanov@aquantia.com</email>
</author>
<published>2018-11-09T11:54:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bbb67a44baf973da734b9fd61cba4211da240751'/>
<id>bbb67a44baf973da734b9fd61cba4211da240751</id>
<content type='text'>
RX Checksum offloads could not be configured and ignored netdev features
flag for checksumming.

Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Signed-off-by: Dmitry Bogdanov &lt;dmitry.bogdanov@aquantia.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>
RX Checksum offloads could not be configured and ignored netdev features
flag for checksumming.

Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Signed-off-by: Dmitry Bogdanov &lt;dmitry.bogdanov@aquantia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: aquantia: invalid checksumm offload implementation</title>
<updated>2018-11-09T23:38:10+00:00</updated>
<author>
<name>Dmitry Bogdanov</name>
<email>dmitry.bogdanov@aquantia.com</email>
</author>
<published>2018-11-09T11:54:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ad703c2b9127f9acdef697ec4755f6da4beaa266'/>
<id>ad703c2b9127f9acdef697ec4755f6da4beaa266</id>
<content type='text'>
Packets with marked invalid IP/UDP/TCP checksums were considered as good
by the driver. The error was in a logic, processing offload bits in
RX descriptor.

Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Signed-off-by: Dmitry Bogdanov &lt;dmitry.bogdanov@aquantia.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 with marked invalid IP/UDP/TCP checksums were considered as good
by the driver. The error was in a logic, processing offload bits in
RX descriptor.

Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Signed-off-by: Dmitry Bogdanov &lt;dmitry.bogdanov@aquantia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: aquantia: fixed enable unicast on 32 macvlan</title>
<updated>2018-11-09T23:38:10+00:00</updated>
<author>
<name>Igor Russkikh</name>
<email>Igor.Russkikh@aquantia.com</email>
</author>
<published>2018-11-09T11:53:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bfaa9f8553d5c20703781e63f4fc8cb4792f18fd'/>
<id>bfaa9f8553d5c20703781e63f4fc8cb4792f18fd</id>
<content type='text'>
Fixed a condition mistake due to which macvlans unicast
item number 32 was not added in the unicast filter.

The consequence is that when exactly 32 macvlans are created
on NIC, the last created macvlan receives no traffic because
its MAC was not registered in HW.

Fixes: 94b3b542303f ("net: aquantia: vlan unicast address list correct handling")
Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Tested-by: Nikita Danilov &lt;nikita.danilov@aquantia.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>
Fixed a condition mistake due to which macvlans unicast
item number 32 was not added in the unicast filter.

The consequence is that when exactly 32 macvlans are created
on NIC, the last created macvlan receives no traffic because
its MAC was not registered in HW.

Fixes: 94b3b542303f ("net: aquantia: vlan unicast address list correct handling")
Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Tested-by: Nikita Danilov &lt;nikita.danilov@aquantia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: aquantia: fix potential IOMMU fault after driver unbind</title>
<updated>2018-11-09T23:38:10+00:00</updated>
<author>
<name>Dmitry Bogdanov</name>
<email>dmitry.bogdanov@aquantia.com</email>
</author>
<published>2018-11-09T11:53:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7a1bb49461b12b2e6332a4d054256835f45203f3'/>
<id>7a1bb49461b12b2e6332a4d054256835f45203f3</id>
<content type='text'>
IOMMU fault may occurr on unbind/bind or if_down/if_up sequence.

Although driver disables the rings on down, this is not enough.
Due to internal HW design, during subsequent initialization
NIC sometimes may reuse RX descriptors cache and write to the
host memory from the descriptor cache.
That's get catched by IOMMU on host.

This patch invalidates the descriptor cache in NIC on interface down
to prevent writing to the cached descriptors and to the memory pointed
in those descriptors.

Signed-off-by: Dmitry Bogdanov &lt;dmitry.bogdanov@aquantia.com&gt;
Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.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>
IOMMU fault may occurr on unbind/bind or if_down/if_up sequence.

Although driver disables the rings on down, this is not enough.
Due to internal HW design, during subsequent initialization
NIC sometimes may reuse RX descriptors cache and write to the
host memory from the descriptor cache.
That's get catched by IOMMU on host.

This patch invalidates the descriptor cache in NIC on interface down
to prevent writing to the cached descriptors and to the memory pointed
in those descriptors.

Signed-off-by: Dmitry Bogdanov &lt;dmitry.bogdanov@aquantia.com&gt;
Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: aquantia: synchronized flow control between mac/phy</title>
<updated>2018-11-09T23:38:10+00:00</updated>
<author>
<name>Igor Russkikh</name>
<email>Igor.Russkikh@aquantia.com</email>
</author>
<published>2018-11-09T11:53:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=35e8e8b45d31bec34379dd36e7b71448e003efb2'/>
<id>35e8e8b45d31bec34379dd36e7b71448e003efb2</id>
<content type='text'>
Flow control statuses were not synchronized between blocks,
that caused packets/link drop on some corner cases, when
MAC sent PFC although Phy was not expecting these to come.

Driver should readout the negotiated FC from phy and
configure RX block accordigly.

This is done on each link change event with information from FW.

Fixes: 288551de45aa ("net: aquantia: Implement rx/tx flow control ethtools callback")
Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.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>
Flow control statuses were not synchronized between blocks,
that caused packets/link drop on some corner cases, when
MAC sent PFC although Phy was not expecting these to come.

Driver should readout the negotiated FC from phy and
configure RX block accordigly.

This is done on each link change event with information from FW.

Fixes: 288551de45aa ("net: aquantia: Implement rx/tx flow control ethtools callback")
Signed-off-by: Igor Russkikh &lt;igor.russkikh@aquantia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: smsc95xx: Fix MTU range</title>
<updated>2018-11-09T03:54:49+00:00</updated>
<author>
<name>Stefan Wahren</name>
<email>stefan.wahren@i2se.com</email>
</author>
<published>2018-11-08T19:38:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=85b18b0237ce9986a81a1b9534b5e2ee116f5504'/>
<id>85b18b0237ce9986a81a1b9534b5e2ee116f5504</id>
<content type='text'>
The commit f77f0aee4da4 ("net: use core MTU range checking in USB NIC
drivers") introduce a common MTU handling for usbnet. But it's missing
the necessary changes for smsc95xx. So set the MTU range accordingly.

This patch has been tested on a Raspberry Pi 3.

Fixes: f77f0aee4da4 ("net: use core MTU range checking in USB NIC drivers")
Signed-off-by: Stefan Wahren &lt;stefan.wahren@i2se.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 commit f77f0aee4da4 ("net: use core MTU range checking in USB NIC
drivers") introduce a common MTU handling for usbnet. But it's missing
the necessary changes for smsc95xx. So set the MTU range accordingly.

This patch has been tested on a Raspberry Pi 3.

Fixes: f77f0aee4da4 ("net: use core MTU range checking in USB NIC drivers")
Signed-off-by: Stefan Wahren &lt;stefan.wahren@i2se.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: stmmac: Fix RX packet size &gt; 8191</title>
<updated>2018-11-09T03:47:44+00:00</updated>
<author>
<name>Thor Thayer</name>
<email>thor.thayer@linux.intel.com</email>
</author>
<published>2018-11-08T17:42:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=8137b6ef0ce469154e5cf19f8e7fe04d9a72ac5e'/>
<id>8137b6ef0ce469154e5cf19f8e7fe04d9a72ac5e</id>
<content type='text'>
Ping problems with packets &gt; 8191 as shown:

PING 192.168.1.99 (192.168.1.99) 8150(8178) bytes of data.
8158 bytes from 192.168.1.99: icmp_seq=1 ttl=64 time=0.669 ms
wrong data byte 8144 should be 0xd0 but was 0x0
16    10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
      20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
%&lt; ---------------snip--------------------------------------
8112  b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
      c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
8144  0 0 0 0 d0 d1
      ^^^^^^^
Notice the 4 bytes of 0 before the expected byte of d0.

Databook notes that the RX buffer must be a multiple of 4/8/16
bytes [1].

Update the DMA Buffer size define to 8188 instead of 8192. Remove
the -1 from the RX buffer size allocations and use the new
DMA Buffer size directly.

[1] Synopsys DesignWare Cores Ethernet MAC Universal v3.70a
    [section 8.4.2 - Table 8-24]

Tested on SoCFPGA Stratix10 with ping sweep from 100 to 8300 byte packets.

Fixes: 286a83721720 ("stmmac: add CHAINED descriptor mode support (V4)")
Suggested-by: Jose Abreu &lt;jose.abreu@synopsys.com&gt;
Signed-off-by: Thor Thayer &lt;thor.thayer@linux.intel.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>
Ping problems with packets &gt; 8191 as shown:

PING 192.168.1.99 (192.168.1.99) 8150(8178) bytes of data.
8158 bytes from 192.168.1.99: icmp_seq=1 ttl=64 time=0.669 ms
wrong data byte 8144 should be 0xd0 but was 0x0
16    10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
      20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
%&lt; ---------------snip--------------------------------------
8112  b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
      c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
8144  0 0 0 0 d0 d1
      ^^^^^^^
Notice the 4 bytes of 0 before the expected byte of d0.

Databook notes that the RX buffer must be a multiple of 4/8/16
bytes [1].

Update the DMA Buffer size define to 8188 instead of 8192. Remove
the -1 from the RX buffer size allocations and use the new
DMA Buffer size directly.

[1] Synopsys DesignWare Cores Ethernet MAC Universal v3.70a
    [section 8.4.2 - Table 8-24]

Tested on SoCFPGA Stratix10 with ping sweep from 100 to 8300 byte packets.

Fixes: 286a83721720 ("stmmac: add CHAINED descriptor mode support (V4)")
Suggested-by: Jose Abreu &lt;jose.abreu@synopsys.com&gt;
Signed-off-by: Thor Thayer &lt;thor.thayer@linux.intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
