<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/usb, branch v4.9</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.9</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.9'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-12-08T18:02:25Z</updated>
<entry>
<title>NET: usb: cdc_mbim: add quirk for supporting Telit LE922A</title>
<updated>2016-12-08T18:02:25Z</updated>
<author>
<name>Daniele Palmas</name>
<email>dnlplm@gmail.com</email>
</author>
<published>2016-12-07T13:07:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7b8076ce8a00d553ae9d3b7eb5f0cc3e63cb16f1'/>
<id>urn:sha1:7b8076ce8a00d553ae9d3b7eb5f0cc3e63cb16f1</id>
<content type='text'>
Telit LE922A MBIM based composition does not work properly
with altsetting toggle done in cdc_ncm_bind_common.

This patch adds CDC_MBIM_FLAG_AVOID_ALTSETTING_TOGGLE quirk
to avoid this procedure that, instead, is mandatory for
other modems.

Signed-off-by: Daniele Palmas &lt;dnlplm@gmail.com&gt;
Reviewed-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: usb: set error code when usb_alloc_urb fails</title>
<updated>2016-12-05T18:27:15Z</updated>
<author>
<name>Pan Bian</name>
<email>bianpan2016@163.com</email>
</author>
<published>2016-12-03T11:24:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=51920830d9d0eb617af18dc60443fcd4fb50a533'/>
<id>urn:sha1:51920830d9d0eb617af18dc60443fcd4fb50a533</id>
<content type='text'>
In function lan78xx_probe(), variable ret takes the errno code on
failures. However, when the call to usb_alloc_urb() fails, its value
will keeps 0. 0 indicates success in the context, which is inconsistent
with the execution result. This patch fixes the bug, assigning
"-ENOMEM" to ret when usb_alloc_urb() returns a NULL pointer.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188771

Signed-off-by: Pan Bian &lt;bianpan2016@163.com&gt;
Acked-by: Woojung Huh &lt;woojung.huh@microchip.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>NET: usb: qmi_wwan: add support for Telit LE922A PID 0x1040</title>
<updated>2016-12-02T18:42:12Z</updated>
<author>
<name>Daniele Palmas</name>
<email>dnlplm@gmail.com</email>
</author>
<published>2016-12-01T15:52:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9bd813da24cd49d749911d7fdc0e9ae9a673d746'/>
<id>urn:sha1:9bd813da24cd49d749911d7fdc0e9ae9a673d746</id>
<content type='text'>
This patch adds support for PID 0x1040 of Telit LE922A.

The qmi adapter requires to have DTR set for proper working,
so QMI_WWAN_QUIRK_DTR has been enabled.

Signed-off-by: Daniele Palmas &lt;dnlplm@gmail.com&gt;
Acked-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>cdc_ether: Fix handling connection notification</title>
<updated>2016-12-02T18:40:09Z</updated>
<author>
<name>Kristian Evensen</name>
<email>kristian.evensen@gmail.com</email>
</author>
<published>2016-12-01T13:23:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d5c83d0d1d83b3798c71e0c8b7c3624d39c91d88'/>
<id>urn:sha1:d5c83d0d1d83b3798c71e0c8b7c3624d39c91d88</id>
<content type='text'>
Commit bfe9b9d2df66 ("cdc_ether: Improve ZTE MF823/831/910 handling")
introduced a work-around in usbnet_cdc_status() for devices that exported
cdc carrier on twice on connect. Before the commit, this behavior caused
the link state to be incorrect. It was assumed that all CDC Ethernet
devices would either export this behavior, or send one off and then one on
notification (which seems to be the default behavior).

Unfortunately, it turns out multiple devices sends a connection
notification multiple times per second (via an interrupt), even when
connection state does not change. This has been observed with several
different USB LAN dongles (at least), for example 13b1:0041 (Linksys).
After bfe9b9d2df66, the link state has been set as down and then up for
each notification. This has caused a flood of Netlink NEWLINK messages and
syslog to be flooded with messages similar to:

cdc_ether 2-1:2.0 eth1: kevent 12 may have been dropped

This commit fixes the behavior by reverting usbnet_cdc_status() to how it
was before bfe9b9d2df66. The work-around has been moved to a separate
status-function which is only called when a known, affect device is
detected.

v1-&gt;v2:

* Do not open-code netif_carrier_ok() (thanks Henning Schild).
* Call netif_carrier_off() instead of usb_link_change(). This prevents
calling schedule_work() twice without giving the work queue a chance to be
processed (thanks Bjørn Mork).

Fixes: bfe9b9d2df66 ("cdc_ether: Improve ZTE MF823/831/910 handling")
Reported-by: Henning Schild &lt;henning.schild@siemens.com&gt;
Signed-off-by: Kristian Evensen &lt;kristian.evensen@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: asix: Fix AX88772_suspend() USB vendor commands failure issues</title>
<updated>2016-12-01T19:26:56Z</updated>
<author>
<name>allan</name>
<email>allan@asix.com.tw</email>
</author>
<published>2016-11-30T08:29:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=fadf3a28054404f075c05d9ca8ebd4b4ce9ebc0f'/>
<id>urn:sha1:fadf3a28054404f075c05d9ca8ebd4b4ce9ebc0f</id>
<content type='text'>
The change fixes AX88772_suspend() USB vendor commands failure issues.

Signed-off-by: Allan Chou &lt;allan@asix.com.tw&gt;
Tested-by: Allan Chou &lt;allan@asix.com.tw&gt;
Tested-by: Jon Hunter &lt;jonathanh@nvidia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>r8152: Fix error path in open function</title>
<updated>2016-11-13T17:03:20Z</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2016-11-10T03:51:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ca0a75316dc62af92943761b1cc049e15c92eb09'/>
<id>urn:sha1:ca0a75316dc62af92943761b1cc049e15c92eb09</id>
<content type='text'>
If usb_submit_urb() called from the open function fails, the following
crash may be observed.

r8152 8-1:1.0 eth0: intr_urb submit failed: -19
...
r8152 8-1:1.0 eth0: v1.08.3
Unable to handle kernel paging request at virtual address 6b6b6b6b6b6b6b7b
pgd = ffffffc0e7305000
[6b6b6b6b6b6b6b7b] *pgd=0000000000000000, *pud=0000000000000000
Internal error: Oops: 96000004 [#1] PREEMPT SMP
...
PC is at notifier_chain_register+0x2c/0x58
LR is at blocking_notifier_chain_register+0x54/0x70
...
Call trace:
[&lt;ffffffc0002407f8&gt;] notifier_chain_register+0x2c/0x58
[&lt;ffffffc000240bdc&gt;] blocking_notifier_chain_register+0x54/0x70
[&lt;ffffffc00026991c&gt;] register_pm_notifier+0x24/0x2c
[&lt;ffffffbffc183200&gt;] rtl8152_open+0x3dc/0x3f8 [r8152]
[&lt;ffffffc000808000&gt;] __dev_open+0xac/0x104
[&lt;ffffffc0008082f8&gt;] __dev_change_flags+0xb0/0x148
[&lt;ffffffc0008083c4&gt;] dev_change_flags+0x34/0x70
[&lt;ffffffc000818344&gt;] do_setlink+0x2c8/0x888
[&lt;ffffffc0008199d4&gt;] rtnl_newlink+0x328/0x644
[&lt;ffffffc000819e98&gt;] rtnetlink_rcv_msg+0x1a8/0x1d4
[&lt;ffffffc0008373c8&gt;] netlink_rcv_skb+0x68/0xd0
[&lt;ffffffc000817990&gt;] rtnetlink_rcv+0x2c/0x3c
[&lt;ffffffc000836d1c&gt;] netlink_unicast+0x16c/0x234
[&lt;ffffffc00083720c&gt;] netlink_sendmsg+0x340/0x364
[&lt;ffffffc0007e85d0&gt;] sock_sendmsg+0x48/0x60
[&lt;ffffffc0007e9c30&gt;] SyS_sendto+0xe0/0x120
[&lt;ffffffc0007e9cb0&gt;] SyS_send+0x40/0x4c
[&lt;ffffffc000203e34&gt;] el0_svc_naked+0x24/0x28

Clean up error handling to avoid registering the notifier if the open
function is going to fail.

Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Net Driver: Add Cypress GX3 VID=04b4 PID=3610.</title>
<updated>2016-11-10T02:45:34Z</updated>
<author>
<name>Allan Chou</name>
<email>allan@asix.com.tw</email>
</author>
<published>2016-11-08T22:08:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8da3cf2a49a6d0ca5e620c6a5eee49b99a3f0880'/>
<id>urn:sha1:8da3cf2a49a6d0ca5e620c6a5eee49b99a3f0880</id>
<content type='text'>
Add support for Cypress GX3 SuperSpeed to Gigabit Ethernet
Bridge Controller (Vendor=04b4 ProdID=3610).

Patch verified on x64 linux kernel 4.7.4, 4.8.6, 4.9-rc4 systems
with the Kensington SD4600P USB-C Universal Dock with Power,
which uses the Cypress GX3 SuperSpeed to Gigabit Ethernet Bridge
Controller.

A similar patch was signed-off and tested-by Allan Chou
&lt;allan@asix.com.tw&gt; on 2015-12-01.

Allan verified his similar patch on x86 Linux kernel 4.1.6 system
with Cypress GX3 SuperSpeed to Gigabit Ethernet Bridge Controller.

Tested-by: Allan Chou &lt;allan@asix.com.tw&gt;
Tested-by: Chris Roth &lt;chris.roth@usask.ca&gt;
Tested-by: Artjom Simon &lt;artjom.simon@gmail.com&gt;

Signed-off-by: Allan Chou &lt;allan@asix.com.tw&gt;
Signed-off-by: Chris Roth &lt;chris.roth@usask.ca&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>r8152: Fix broken RX checksums.</title>
<updated>2016-10-31T00:56:13Z</updated>
<author>
<name>Mark Lord</name>
<email>mlord@pobox.com</email>
</author>
<published>2016-10-30T23:28:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b9a321b48af40e0606009df8aff0a8c65dfbbfd8'/>
<id>urn:sha1:b9a321b48af40e0606009df8aff0a8c65dfbbfd8</id>
<content type='text'>
The r8152 driver has been broken since (approx) 3.16.xx
when support was added for hardware RX checksums
on newer chip versions.  Symptoms include random
segfaults and silent data corruption over NFS.

The hardware checksum logig does not work on the VER_02
dongles I have here when used with a slow embedded system CPU.
Google reveals others reporting similar issues on Raspberry Pi.

So, disable hardware RX checksum support for VER_02, and fix
an obvious coding error for IPV6 checksums in the same function.

Because this bug results in silent data corruption,
it is a good candidate for back-porting to -stable &gt;= 3.16.xx.

Signed-off-by: Mark Lord &lt;mlord@pobox.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>kalmia: avoid potential uninitialized variable use</title>
<updated>2016-10-27T20:27:34Z</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2016-10-24T15:54:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e30520c2b075fae3977d482a31b54b0256160a57'/>
<id>urn:sha1:e30520c2b075fae3977d482a31b54b0256160a57</id>
<content type='text'>
The kalmia_send_init_packet() returns zero or a negative return
code, but gcc has no way of knowing that there cannot be a
positive return code, so it determines that copying the ethernet
address at the end of kalmia_bind() will access uninitialized
data:

drivers/net/usb/kalmia.c: In function ‘kalmia_bind’:
arch/x86/include/asm/string_32.h:78:22: error: ‘*((void *)&amp;ethernet_addr+4)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   *((short *)to + 2) = *((short *)from + 2);
                      ^
drivers/net/usb/kalmia.c:138:5: note: ‘*((void *)&amp;ethernet_addr+4)’ was declared here

This warning is harmless, but for consistency, we should make
the check for the return code match what the driver does everywhere
else and just progate it, which then gets rid of the warning.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: asix: Avoid looping when the device does not respond</title>
<updated>2016-10-14T20:06:54Z</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2016-10-13T23:43:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=610df1d2342d639ec87a8fb5290ca4799d91d59b'/>
<id>urn:sha1:610df1d2342d639ec87a8fb5290ca4799d91d59b</id>
<content type='text'>
Check answers from USB stack and avoid re-sending the request
multiple times if the device does not respond.

This fixes the following problem, observed with a probably flaky adapter.

[62108.732707] usb 1-3: new high-speed USB device number 5 using xhci_hcd
[62108.914421] usb 1-3: New USB device found, idVendor=0b95, idProduct=7720
[62108.914463] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[62108.914476] usb 1-3: Product: AX88x72A
[62108.914486] usb 1-3: Manufacturer: ASIX Elec. Corp.
[62108.914495] usb 1-3: SerialNumber: 000001
[62114.109109] asix 1-3:1.0 (unnamed net_device) (uninitialized):
	Failed to write reg index 0x0000: -110
[62114.109139] asix 1-3:1.0 (unnamed net_device) (uninitialized):
	Failed to send software reset: ffffff92
[62119.109048] asix 1-3:1.0 (unnamed net_device) (uninitialized):
	Failed to write reg index 0x0000: -110
...

Since the USB timeout is 5 seconds, and the operation is retried 30 times,
this results in

[62278.180353] INFO: task mtpd:1725 blocked for more than 120 seconds.
[62278.180373]       Tainted: G        W      3.18.0-13298-g94ace9e #1
[62278.180383] "echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
...
[62278.180957] kworker/2:0     D 0000000000000000     0  5744      2 0x00000000
[62278.180978] Workqueue: usb_hub_wq hub_event
[62278.181029]  ffff880177f833b8 0000000000000046 ffff88017fd00000 ffff88017b126d80
[62278.181048]  ffff880177f83fd8 ffff880065a71b60 0000000000013340 ffff880065a71b60
[62278.181065]  0000000000000286 0000000103b1c199 0000000000001388 0000000000000002
[62278.181081] Call Trace:
[62278.181092]  [&lt;ffffffff8e0971fd&gt;] ? console_conditional_schedule+0x2c/0x2c
[62278.181105]  [&lt;ffffffff8e094f7b&gt;] schedule+0x69/0x6b
[62278.181117]  [&lt;ffffffff8e0972e0&gt;] schedule_timeout+0xe3/0x11d
[62278.181133]  [&lt;ffffffff8daadb1b&gt;] ? trace_timer_start+0x51/0x51
[62278.181146]  [&lt;ffffffff8e095a05&gt;] do_wait_for_common+0x12f/0x16c
[62278.181162]  [&lt;ffffffff8da856a7&gt;] ? wake_up_process+0x39/0x39
[62278.181174]  [&lt;ffffffff8e095aee&gt;] wait_for_common+0x52/0x6d
[62278.181187]  [&lt;ffffffff8e095b3b&gt;] wait_for_completion_timeout+0x13/0x15
[62278.181201]  [&lt;ffffffff8de676ce&gt;] usb_start_wait_urb+0x93/0xf1
[62278.181214]  [&lt;ffffffff8de6780d&gt;] usb_control_msg+0xe1/0x11d
[62278.181230]  [&lt;ffffffffc037d629&gt;] usbnet_write_cmd+0x9c/0xc6 [usbnet]
[62278.181286]  [&lt;ffffffffc03af793&gt;] asix_write_cmd+0x4e/0x7e [asix]
[62278.181300]  [&lt;ffffffffc03afb41&gt;] asix_set_sw_mii+0x25/0x4e [asix]
[62278.181314]  [&lt;ffffffffc03b001d&gt;] asix_mdio_read+0x51/0x109 [asix]
...

Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
