<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/linux/usb/usbnet.h, branch T30_LinuxImageV2.0Beta2_20130626</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>usbnet: fix skb traversing races during unlink(v2)</title>
<updated>2012-09-05T00:10:35+00:00</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2012-04-26T03:33:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6f61e5baa83ef8c75746eabe90be0588f6d86b37'/>
<id>6f61e5baa83ef8c75746eabe90be0588f6d86b37</id>
<content type='text'>
Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock before unlink, but may
cause skb traversing races:
	- after URB is unlinked and the queue lock is released,
	the refered skb and skb-&gt;next may be moved to done queue,
	even be released
	- in skb_queue_walk_safe, the next skb is still obtained
	by next pointer of the last skb
	- so maybe trigger oops or other problems

This patch extends the usage of entry-&gt;state to describe 'start_unlink'
state, so always holding the queue(rx/tx) lock to change the state if
the referd skb is in rx or tx queue because we need to know if the
refered urb has been started unlinking in unlink_urbs.

The other part of this patch is based on Huajun's patch:
always traverse from head of the tx/rx queue to get skb which is
to be unlinked but not been started unlinking.

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Cc: Oliver Neukum &lt;oneukum@suse.de&gt;
Cc: stable@kernel.org
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
(cherry picked from commit 5b6e9bcdeb65634b4ad604eb4536404bbfc62cfa)

Bug 1040642

Change-Id: I1a8c248016529bebf71d540738ad4726cf3f59b7
Signed-off-by: Steve Lin &lt;stlin@nvidia.com&gt;
Reviewed-on: http://git-master/r/128693
GVS: Gerrit_Virtual_Submit
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock before unlink, but may
cause skb traversing races:
	- after URB is unlinked and the queue lock is released,
	the refered skb and skb-&gt;next may be moved to done queue,
	even be released
	- in skb_queue_walk_safe, the next skb is still obtained
	by next pointer of the last skb
	- so maybe trigger oops or other problems

This patch extends the usage of entry-&gt;state to describe 'start_unlink'
state, so always holding the queue(rx/tx) lock to change the state if
the referd skb is in rx or tx queue because we need to know if the
refered urb has been started unlinking in unlink_urbs.

The other part of this patch is based on Huajun's patch:
always traverse from head of the tx/rx queue to get skb which is
to be unlinked but not been started unlinking.

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Cc: Oliver Neukum &lt;oneukum@suse.de&gt;
Cc: stable@kernel.org
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
(cherry picked from commit 5b6e9bcdeb65634b4ad604eb4536404bbfc62cfa)

Bug 1040642

Change-Id: I1a8c248016529bebf71d540738ad4726cf3f59b7
Signed-off-by: Steve Lin &lt;stlin@nvidia.com&gt;
Reviewed-on: http://git-master/r/128693
GVS: Gerrit_Virtual_Submit
</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: Fix 'FLAG_RMNET' and 'FLAG_MULTI_PACKET' overlap.</title>
<updated>2012-01-30T19:48:08+00:00</updated>
<author>
<name>Raj Jayaraman</name>
<email>rjayaraman@nvidia.com</email>
</author>
<published>2012-01-20T19:07:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=da0280659ba3f62d6dcb7b3b2b2f20a9c54c2d0b'/>
<id>da0280659ba3f62d6dcb7b3b2b2f20a9c54c2d0b</id>
<content type='text'>
Bug 901367

Change-Id: I73fe7c19f5f50530f7d0a73d0a6b9ba2092c71d2

Reviewed-on: http://git-master/r/76664

Reviewed-by: Steve Lin &lt;stlin@nvidia.com&gt;
Signed-off-by: Raj Jayaraman &lt;rjayaraman@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Change-Id: I309eb6178a7f39714f9e5f963faf011a1a79b079
Reviewed-on: http://git-master/r/77309
Reviewed-by: Automatic_Commit_Validation_User
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug 901367

Change-Id: I73fe7c19f5f50530f7d0a73d0a6b9ba2092c71d2

Reviewed-on: http://git-master/r/76664

Reviewed-by: Steve Lin &lt;stlin@nvidia.com&gt;
Signed-off-by: Raj Jayaraman &lt;rjayaraman@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Change-Id: I309eb6178a7f39714f9e5f963faf011a1a79b079
Reviewed-on: http://git-master/r/77309
Reviewed-by: Automatic_Commit_Validation_User
</pre>
</div>
</content>
</entry>
<entry>
<title>cdc_ncm: Modify NCM network interface.</title>
<updated>2012-01-20T21:44:11+00:00</updated>
<author>
<name>BH Hsieh</name>
<email>bhsieh@nvidia.com</email>
</author>
<published>2012-01-18T05:10:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=aab7c14c8814cd1a8f56ff61cd1eb8811e691073'/>
<id>aab7c14c8814cd1a8f56ff61cd1eb8811e691073</id>
<content type='text'>
Adding FLAG_RMNET to change ncm net device name
for Ericsson modem.

Bug 901367

Change-Id: I4a029cc10a02176035319ed4ac1e7b9af349cbd1
Reviewed-on: http://git-master/r/74912
Reviewed-by: WK Tsai &lt;wtsai@nvidia.com&gt;
Reviewed-by: Steve Lin &lt;stlin@nvidia.com&gt;
Signed-off-by: BH Hsieh &lt;bhsieh@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-on: http://git-master/r/76459
Reviewed-by: Automatic_Commit_Validation_User
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adding FLAG_RMNET to change ncm net device name
for Ericsson modem.

Bug 901367

Change-Id: I4a029cc10a02176035319ed4ac1e7b9af349cbd1
Reviewed-on: http://git-master/r/74912
Reviewed-by: WK Tsai &lt;wtsai@nvidia.com&gt;
Reviewed-by: Steve Lin &lt;stlin@nvidia.com&gt;
Signed-off-by: BH Hsieh &lt;bhsieh@nvidia.com&gt;
Signed-off-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-on: http://git-master/r/76459
Reviewed-by: Automatic_Commit_Validation_User
</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: Resubmit interrupt URB if device is open</title>
<updated>2011-04-28T19:56:09+00:00</updated>
<author>
<name>Paul Stewart</name>
<email>pstew@chromium.org</email>
</author>
<published>2011-04-28T05:43:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=68972efa657040f891c7eda07c7da8c8dd576788'/>
<id>68972efa657040f891c7eda07c7da8c8dd576788</id>
<content type='text'>
Resubmit interrupt URB if device is open.  Use a flag set in
usbnet_open() to determine this state.  Also kill and free
interrupt URB in usbnet_disconnect().

[Rebased off git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git]

Signed-off-by: Paul Stewart &lt;pstew@chromium.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>
Resubmit interrupt URB if device is open.  Use a flag set in
usbnet_open() to determine this state.  Also kill and free
interrupt URB in usbnet_disconnect().

[Rebased off git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git]

Signed-off-by: Paul Stewart &lt;pstew@chromium.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: Fix up 'FLAG_POINTTOPOINT' and 'FLAG_MULTI_PACKET' overlaps.</title>
<updated>2011-04-14T07:22:27+00:00</updated>
<author>
<name>huajun li</name>
<email>huajun.li.lee@gmail.com</email>
</author>
<published>2011-04-13T15:43:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=38a2f37258f9e2ae3f6e4241e01088be8dfaf4e9'/>
<id>38a2f37258f9e2ae3f6e4241e01088be8dfaf4e9</id>
<content type='text'>
USB tethering does not work anymore since 2.6.39-rc2, but it's okay in
-rc1. The root cause is the new added mask code 'FLAG_POINTTOPOINT'
overlaps 'FLAG_MULTI_PACKET'  in  include/linux/usb/usbnet.h, this
causes logic issue in  rx_process(). This patch cleans up the overlap.

Reported-and-Tested-by: Gottfried Haider &lt;gottfried.haider@gmail.com&gt;
Signed-off-by:  Huajun Li &lt;huajun.li.lee@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>
USB tethering does not work anymore since 2.6.39-rc2, but it's okay in
-rc1. The root cause is the new added mask code 'FLAG_POINTTOPOINT'
overlaps 'FLAG_MULTI_PACKET'  in  include/linux/usb/usbnet.h, this
causes logic issue in  rx_process(). This patch cleans up the overlap.

Reported-and-Tested-by: Gottfried Haider &lt;gottfried.haider@gmail.com&gt;
Signed-off-by:  Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: use eth%d name for known ethernet devices</title>
<updated>2011-04-02T03:12:02+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd.bergmann@linaro.org</email>
</author>
<published>2011-04-02T03:12:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c261344d3ce3edac781f9d3c7eabe2e96d8e8fe8'/>
<id>c261344d3ce3edac781f9d3c7eabe2e96d8e8fe8</id>
<content type='text'>
The documentation for the USB ethernet devices suggests that
only some devices are supposed to use usb0 as the network interface
name instead of eth0. The logic used there, and documented in
Kconfig for CDC is that eth0 will be used when the mac address
is a globally assigned one, but usb0 is used for the locally
managed range that is typically used on point-to-point links.

Unfortunately, this has caused a lot of pain on the smsc95xx
device that is used on the popular pandaboard without an
EEPROM to store the MAC address, which causes the driver to
call random_ether_address().

Obviously, there should be a proper MAC addressed assigned to
the device, and discussions are ongoing about how to solve
this, but this patch at least makes sure that the default
interface naming gets a little saner and matches what the
user can expect based on the documentation, including for
new devices.

The approach taken here is to flag whether a device might be a
point-to-point link with the new FLAG_POINTTOPOINT setting in
the usbnet driver_info. A driver can set both FLAG_POINTTOPOINT
and FLAG_ETHER if it is not sure (e.g. cdc_ether), or just one
of the two.  The usbnet framework only looks at the MAC address
for device naming if both flags are set, otherwise it trusts the
flag.

Signed-off-by: Arnd Bergmann &lt;arnd.bergmann@linaro.org&gt;
Tested-by: Andy Green &lt;andy.green@linaro.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>
The documentation for the USB ethernet devices suggests that
only some devices are supposed to use usb0 as the network interface
name instead of eth0. The logic used there, and documented in
Kconfig for CDC is that eth0 will be used when the mac address
is a globally assigned one, but usb0 is used for the locally
managed range that is typically used on point-to-point links.

Unfortunately, this has caused a lot of pain on the smsc95xx
device that is used on the popular pandaboard without an
EEPROM to store the MAC address, which causes the driver to
call random_ether_address().

Obviously, there should be a proper MAC addressed assigned to
the device, and discussions are ongoing about how to solve
this, but this patch at least makes sure that the default
interface naming gets a little saner and matches what the
user can expect based on the documentation, including for
new devices.

The approach taken here is to flag whether a device might be a
point-to-point link with the new FLAG_POINTTOPOINT setting in
the usbnet driver_info. A driver can set both FLAG_POINTTOPOINT
and FLAG_ETHER if it is not sure (e.g. cdc_ether), or just one
of the two.  The usbnet framework only looks at the MAC address
for device naming if both flags are set, otherwise it trusts the
flag.

Signed-off-by: Arnd Bergmann &lt;arnd.bergmann@linaro.org&gt;
Tested-by: Andy Green &lt;andy.green@linaro.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/usb: Ethernet quirks for the LG-VL600 4G modem</title>
<updated>2011-03-30T09:35:08+00:00</updated>
<author>
<name>Andrzej Zaborowski</name>
<email>andrew.zaborowski@intel.com</email>
</author>
<published>2011-03-28T12:56:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7a635ea989991d7f12d57a12f2ba7cb6d211e083'/>
<id>7a635ea989991d7f12d57a12f2ba7cb6d211e083</id>
<content type='text'>
This adds a driver for the CDC Ethernet part of this modem.  The
device's ID is blacklisted in cdc_ether.c and is white-listed in
this new driver because of the quirks needed to make it useful.
The modem's firmware exposes a CDC ACM port for modem control and a
CDC Ethernet port for network data.  The descriptors look fine but
both ports actually are some sort of multiplexers requiring non-
standard headers added/removed from every packet or they get
ignored.  All information is based on a usb traffic log from a
Windows machine.

On the Verizon 4G network I've seen speeds up to 1.1MB/s so far with
this driver, a speed-o-meter site reports 16.2Mbps/10.5Mbps.
Userspace scripts are required to talk to the CDC ACM port.

Signed-off-by: Andrzej Zaborowski &lt;balrogg@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>
This adds a driver for the CDC Ethernet part of this modem.  The
device's ID is blacklisted in cdc_ether.c and is white-listed in
this new driver because of the quirks needed to make it useful.
The modem's firmware exposes a CDC ACM port for modem control and a
CDC Ethernet port for network data.  The descriptors look fine but
both ports actually are some sort of multiplexers requiring non-
standard headers added/removed from every packet or they get
ignored.  All information is based on a usb traffic log from a
Windows machine.

On the Verizon 4G network I've seen speeds up to 1.1MB/s so far with
this driver, a speed-o-meter site reports 16.2Mbps/10.5Mbps.
Userspace scripts are required to talk to the CDC ACM port.

Signed-off-by: Andrzej Zaborowski &lt;balrogg@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: changes for upcoming cdc_ncm driver</title>
<updated>2010-12-06T20:59:02+00:00</updated>
<author>
<name>Alexey Orishko</name>
<email>alexey.orishko@gmail.com</email>
</author>
<published>2010-11-29T23:23:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=073285fd392f6dc901da7c698d46e1e2a7e26436'/>
<id>073285fd392f6dc901da7c698d46e1e2a7e26436</id>
<content type='text'>
Changes:
include/linux/usb/usbnet.h:
- a new flag to indicate driver's capability to accumulate IP packets in Tx
 direction and extract several packets from single skb in Rx direction.
drivers/net/usb/usbnet.c:
- the procedure of counting packets in usbnet was updated due to the
 accumulating of IP packets in the driver
- no short packets are sent if indicated by the flag in driver_info
 structure

Signed-off-by: Alexey Orishko &lt;alexey.orishko@stericsson.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>
Changes:
include/linux/usb/usbnet.h:
- a new flag to indicate driver's capability to accumulate IP packets in Tx
 direction and extract several packets from single skb in Rx direction.
drivers/net/usb/usbnet.c:
- the procedure of counting packets in usbnet was updated due to the
 accumulating of IP packets in the driver
- no short packets are sent if indicated by the flag in driver_info
 structure

Signed-off-by: Alexey Orishko &lt;alexey.orishko@stericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: include/usb/*.h checkpatch cleanup</title>
<updated>2010-05-20T20:21:47+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@suse.de</email>
</author>
<published>2010-05-17T17:58:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0858a3a52f659dabf2860f350e5a6a61f069e851'/>
<id>0858a3a52f659dabf2860f350e5a6a61f069e851</id>
<content type='text'>
Lots of minor formatting cleanups in includes/usb/ to make checkpatch
happier.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lots of minor formatting cleanups in includes/usb/ to make checkpatch
happier.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usbnet: Convert dev(dbg|err|warn|info) macros to netdev_&lt;level&gt;</title>
<updated>2010-02-17T21:35:40+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-02-17T10:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=60b86755929e1a7e9038c8d860a8491cfdf8d93a'/>
<id>60b86755929e1a7e9038c8d860a8491cfdf8d93a</id>
<content type='text'>
These macros are too similar to the dev_&lt;level&gt; equivalents
but take a usbnet * argument.  Convert them to the recently
introduced netdev_&lt;level&gt; macros and remove the old macros.

The old macros had "\n" appended to the format string.
Add the "\n" to the converted uses.

Some existing uses of the dev&lt;foo&gt; macros in cdc_eem.c
probably mistakenly had trailing "\n".  No "\n" added there.

Fix net1080 this/other log message inversion.

Signed-off-by: Joe Perches &lt;joe@perches.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>
These macros are too similar to the dev_&lt;level&gt; equivalents
but take a usbnet * argument.  Convert them to the recently
introduced netdev_&lt;level&gt; macros and remove the old macros.

The old macros had "\n" appended to the format string.
Add the "\n" to the converted uses.

Some existing uses of the dev&lt;foo&gt; macros in cdc_eem.c
probably mistakenly had trailing "\n".  No "\n" added there.

Fix net1080 this/other log message inversion.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
