<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/gadget/function/u_ether.c, branch linux-3.18.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>usb: gadget: u_ether: remove interrupt throttling</title>
<updated>2017-04-18T05:55:47+00:00</updated>
<author>
<name>Felipe Balbi</name>
<email>felipe.balbi@linux.intel.com</email>
</author>
<published>2016-11-01T11:20:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=24c31e968696c76145482c3ce6e5433ba31ac1f9'/>
<id>24c31e968696c76145482c3ce6e5433ba31ac1f9</id>
<content type='text'>
commit fd9afd3cbe404998d732be6cc798f749597c5114 upstream.

According to Dave Miller "the networking stack has a
hard requirement that all SKBs which are transmitted
must have their completion signalled in a fininte
amount of time. This is because, until the SKB is
freed by the driver, it holds onto socket,
netfilter, and other subsystem resources."

In summary, this means that using TX IRQ throttling
for the networking gadgets is, at least, complex and
we should avoid it for the time being.

Reported-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Tested-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Suggested-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit fd9afd3cbe404998d732be6cc798f749597c5114 upstream.

According to Dave Miller "the networking stack has a
hard requirement that all SKBs which are transmitted
must have their completion signalled in a fininte
amount of time. This is because, until the SKB is
freed by the driver, it holds onto socket,
netfilter, and other subsystem resources."

In summary, this means that using TX IRQ throttling
for the networking gadgets is, at least, complex and
we should avoid it for the time being.

Reported-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Tested-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Suggested-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: gadget: function: u_ether: don't starve tx request queue</title>
<updated>2016-11-24T02:30:17+00:00</updated>
<author>
<name>Felipe Balbi</name>
<email>felipe.balbi@linux.intel.com</email>
</author>
<published>2016-10-04T12:14:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=27c8728510db7bee957ced720990227fa773a14d'/>
<id>27c8728510db7bee957ced720990227fa773a14d</id>
<content type='text'>
[ Upstream commit 6c83f77278f17a7679001027e9231291c20f0d8a ]

If we don't guarantee that we will always get an
interrupt at least when we're queueing our very last
request, we could fall into situation where we queue
every request with 'no_interrupt' set. This will
cause the link to get stuck.

The behavior above has been triggered with g_ether
and dwc3.

Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 6c83f77278f17a7679001027e9231291c20f0d8a ]

If we don't guarantee that we will always get an
interrupt at least when we're queueing our very last
request, we could fall into situation where we queue
every request with 'no_interrupt' set. This will
cause the link to get stuck.

The behavior above has been triggered with g_ether
and dwc3.

Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Signed-off-by: Felipe Balbi &lt;felipe.balbi@linux.intel.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "usb: gadget: u_ether: synchronize with transmit when stopping queue"</title>
<updated>2014-08-19T14:51:19+00:00</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2014-07-25T06:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=7166c32d9a6b8655ce13b0844482526734ac41b3'/>
<id>7166c32d9a6b8655ce13b0844482526734ac41b3</id>
<content type='text'>
This reverts commit a9232076374334ca2bc2a448dfde96d38a54349a.

It introduced a dead lock, and did not fix anything.

it made netif_tx_lock() be called in IRQ context, but in softirq context,
the same lock is locked without disabling IRQ. In fact, the commit a923207637
did not fix anything, since netif_stop_queue did not free the any resource

[   10.154920] =================================
[   10.156026] [ INFO: inconsistent lock state ]
[   10.156026] 3.16.0-rc5+ #13 Not tainted
[   10.156026] ---------------------------------
[   10.156026] inconsistent {IN-HARDIRQ-W} -&gt; {HARDIRQ-ON-W} usage.
[   10.156026] swapper/1/0 [HC0[0]:SC1[5]:HE1:SE0] takes:
[   10.156026]  (_xmit_ETHER){?.-...}, at: [&lt;80948b6a&gt;] sch_direct_xmit+0x7a/0x250
[   10.156026] {IN-HARDIRQ-W} state was registered at:
[   10.156026]   [&lt;804811f0&gt;] __lock_acquire+0x800/0x17a0
[   10.156026]   [&lt;804828ba&gt;] lock_acquire+0x6a/0xf0
[   10.156026]   [&lt;809ed477&gt;] _raw_spin_lock+0x27/0x40
[   10.156026]   [&lt;8088d508&gt;] gether_disconnect+0x68/0x280
[   10.156026]   [&lt;8088e777&gt;] eem_set_alt+0x37/0xc0
[   10.156026]   [&lt;808847ce&gt;] composite_setup+0x30e/0x1240
[   10.156026]   [&lt;8088b8ae&gt;] pch_udc_isr+0xa6e/0xf50
[   10.156026]   [&lt;8048abe8&gt;] handle_irq_event_percpu+0x38/0x1e0
[   10.156026]   [&lt;8048adc1&gt;] handle_irq_event+0x31/0x50
[   10.156026]   [&lt;8048d94b&gt;] handle_fasteoi_irq+0x6b/0x140
[   10.156026]   [&lt;804040a5&gt;] handle_irq+0x65/0x80
[   10.156026]   [&lt;80403cfc&gt;] do_IRQ+0x3c/0xc0
[   10.156026]   [&lt;809ee6ae&gt;] common_interrupt+0x2e/0x34
[   10.156026]   [&lt;804668c5&gt;] finish_task_switch+0x65/0xd0
[   10.156026]   [&lt;809e89df&gt;] __schedule+0x20f/0x7d0
[   10.156026]   [&lt;809e94aa&gt;] schedule_preempt_disabled+0x2a/0x70
[   10.156026]   [&lt;8047bf03&gt;] cpu_startup_entry+0x143/0x410
[   10.156026]   [&lt;809e2e61&gt;] rest_init+0xa1/0xb0
[   10.156026]   [&lt;80ce2a3b&gt;] start_kernel+0x336/0x33b
[   10.156026]   [&lt;80ce22ab&gt;] i386_start_kernel+0x79/0x7d
[   10.156026] irq event stamp: 52070
[   10.156026] hardirqs last  enabled at (52070): [&lt;809375de&gt;] neigh_resolve_output+0xee/0x2a0
[   10.156026] hardirqs last disabled at (52069): [&lt;809375a8&gt;] neigh_resolve_output+0xb8/0x2a0
[   10.156026] softirqs last  enabled at (52020): [&lt;8044401f&gt;] _local_bh_enable+0x1f/0x50
[   10.156026] softirqs last disabled at (52021): [&lt;80404036&gt;] do_softirq_own_stack+0x26/0x30
[   10.156026]
[   10.156026] other info that might help us debug this:
[   10.156026]  Possible unsafe locking scenario:
[   10.156026]
[   10.156026]        CPU0
[   10.156026]        ----
[   10.156026]   lock(_xmit_ETHER);
[   10.156026]   &lt;Interrupt&gt;
[   10.156026]     lock(_xmit_ETHER);
[   10.156026]
[   10.156026]  *** DEADLOCK ***
[   10.156026]
[   10.156026] 4 locks held by swapper/1/0:
[   10.156026]  #0:  (((&amp;idev-&gt;mc_ifc_timer))){+.-...}, at: [&lt;8044b100&gt;] call_timer_fn+0x0/0x190
[   10.156026]  #1:  (rcu_read_lock){......}, at: [&lt;a0577c40&gt;] mld_sendpack+0x0/0x590 [ipv6]
[   10.156026]  #2:  (rcu_read_lock_bh){......}, at: [&lt;a055680c&gt;] ip6_finish_output2+0x4c/0x7f0 [ipv6]
[   10.156026]  #3:  (rcu_read_lock_bh){......}, at: [&lt;8092e510&gt;] __dev_queue_xmit+0x0/0x5f0
[   10.156026]
[   10.156026] stack backtrace:
[   10.156026] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.16.0-rc5+ #13
[   10.156026]  811dbb10 00000000 9e919d10 809e6785 9e8b8000 9e919d3c 809e561e 80b95511
[   10.156026]  80b9545a 80b9543d 80b95450 80b95441 80b957e4 9e8b84e0 00000002 8047f7b0
[   10.156026]  9e919d5c 8048043b 00000002 00000000 9e8b8000 00000001 00000004 9e8b8000
[   10.156026] Call Trace:
[   10.156026]  [&lt;809e6785&gt;] dump_stack+0x48/0x69
[   10.156026]  [&lt;809e561e&gt;] print_usage_bug+0x18f/0x19c
[   10.156026]  [&lt;8047f7b0&gt;] ? print_shortest_lock_dependencies+0x170/0x170
[   10.156026]  [&lt;8048043b&gt;] mark_lock+0x53b/0x5f0
[   10.156026]  [&lt;804810cf&gt;] __lock_acquire+0x6df/0x17a0
[   10.156026]  [&lt;804828ba&gt;] lock_acquire+0x6a/0xf0
[   10.156026]  [&lt;80948b6a&gt;] ? sch_direct_xmit+0x7a/0x250
[   10.156026]  [&lt;809ed477&gt;] _raw_spin_lock+0x27/0x40
[   10.156026]  [&lt;80948b6a&gt;] ? sch_direct_xmit+0x7a/0x250
[   10.156026]  [&lt;80948b6a&gt;] sch_direct_xmit+0x7a/0x250
[   10.156026]  [&lt;8092e6bf&gt;] __dev_queue_xmit+0x1af/0x5f0
[   10.156026]  [&lt;80947fc0&gt;] ? ether_setup+0x80/0x80
[   10.156026]  [&lt;8092eb0f&gt;] dev_queue_xmit+0xf/0x20
[   10.156026]  [&lt;8093764c&gt;] neigh_resolve_output+0x15c/0x2a0
[   10.156026]  [&lt;a0556927&gt;] ip6_finish_output2+0x167/0x7f0 [ipv6]
[   10.156026]  [&lt;a0559b05&gt;] ip6_finish_output+0x85/0x1c0 [ipv6]
[   10.156026]  [&lt;a0559cb7&gt;] ip6_output+0x77/0x240 [ipv6]
[   10.156026]  [&lt;a0578163&gt;] mld_sendpack+0x523/0x590 [ipv6]
[   10.156026]  [&lt;80480501&gt;] ? mark_held_locks+0x11/0x90
[   10.156026]  [&lt;a057947d&gt;] mld_ifc_timer_expire+0x15d/0x280 [ipv6]
[   10.156026]  [&lt;8044b168&gt;] call_timer_fn+0x68/0x190
[   10.156026]  [&lt;a0579320&gt;] ? igmp6_group_added+0x150/0x150 [ipv6]
[   10.156026]  [&lt;8044b3fa&gt;] run_timer_softirq+0x16a/0x240
[   10.156026]  [&lt;a0579320&gt;] ? igmp6_group_added+0x150/0x150 [ipv6]
[   10.156026]  [&lt;80444984&gt;] __do_softirq+0xd4/0x2f0
[   10.156026]  [&lt;804448b0&gt;] ? tasklet_action+0x100/0x100
[   10.156026]  [&lt;80404036&gt;] do_softirq_own_stack+0x26/0x30
[   10.156026]  &lt;IRQ&gt;  [&lt;80444d05&gt;] irq_exit+0x65/0x70
[   10.156026]  [&lt;8042d758&gt;] smp_apic_timer_interrupt+0x38/0x50
[   10.156026]  [&lt;809ee91f&gt;] apic_timer_interrupt+0x2f/0x34
[   10.156026]  [&lt;8048007b&gt;] ? mark_lock+0x17b/0x5f0
[   10.156026]  [&lt;8040a912&gt;] ? default_idle+0x22/0xf0
[   10.156026]  [&lt;8040b13e&gt;] arch_cpu_idle+0xe/0x10
[   10.156026]  [&lt;8047bfc6&gt;] cpu_startup_entry+0x206/0x410
[   10.156026]  [&lt;8042bfbd&gt;] start_secondary+0x19d/0x1e0

Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Reported-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Jeff Westfahl &lt;jeff.westfahl@ni.com&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: &lt;linux-usb@vger.kernel.org&gt;
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit a9232076374334ca2bc2a448dfde96d38a54349a.

It introduced a dead lock, and did not fix anything.

it made netif_tx_lock() be called in IRQ context, but in softirq context,
the same lock is locked without disabling IRQ. In fact, the commit a923207637
did not fix anything, since netif_stop_queue did not free the any resource

[   10.154920] =================================
[   10.156026] [ INFO: inconsistent lock state ]
[   10.156026] 3.16.0-rc5+ #13 Not tainted
[   10.156026] ---------------------------------
[   10.156026] inconsistent {IN-HARDIRQ-W} -&gt; {HARDIRQ-ON-W} usage.
[   10.156026] swapper/1/0 [HC0[0]:SC1[5]:HE1:SE0] takes:
[   10.156026]  (_xmit_ETHER){?.-...}, at: [&lt;80948b6a&gt;] sch_direct_xmit+0x7a/0x250
[   10.156026] {IN-HARDIRQ-W} state was registered at:
[   10.156026]   [&lt;804811f0&gt;] __lock_acquire+0x800/0x17a0
[   10.156026]   [&lt;804828ba&gt;] lock_acquire+0x6a/0xf0
[   10.156026]   [&lt;809ed477&gt;] _raw_spin_lock+0x27/0x40
[   10.156026]   [&lt;8088d508&gt;] gether_disconnect+0x68/0x280
[   10.156026]   [&lt;8088e777&gt;] eem_set_alt+0x37/0xc0
[   10.156026]   [&lt;808847ce&gt;] composite_setup+0x30e/0x1240
[   10.156026]   [&lt;8088b8ae&gt;] pch_udc_isr+0xa6e/0xf50
[   10.156026]   [&lt;8048abe8&gt;] handle_irq_event_percpu+0x38/0x1e0
[   10.156026]   [&lt;8048adc1&gt;] handle_irq_event+0x31/0x50
[   10.156026]   [&lt;8048d94b&gt;] handle_fasteoi_irq+0x6b/0x140
[   10.156026]   [&lt;804040a5&gt;] handle_irq+0x65/0x80
[   10.156026]   [&lt;80403cfc&gt;] do_IRQ+0x3c/0xc0
[   10.156026]   [&lt;809ee6ae&gt;] common_interrupt+0x2e/0x34
[   10.156026]   [&lt;804668c5&gt;] finish_task_switch+0x65/0xd0
[   10.156026]   [&lt;809e89df&gt;] __schedule+0x20f/0x7d0
[   10.156026]   [&lt;809e94aa&gt;] schedule_preempt_disabled+0x2a/0x70
[   10.156026]   [&lt;8047bf03&gt;] cpu_startup_entry+0x143/0x410
[   10.156026]   [&lt;809e2e61&gt;] rest_init+0xa1/0xb0
[   10.156026]   [&lt;80ce2a3b&gt;] start_kernel+0x336/0x33b
[   10.156026]   [&lt;80ce22ab&gt;] i386_start_kernel+0x79/0x7d
[   10.156026] irq event stamp: 52070
[   10.156026] hardirqs last  enabled at (52070): [&lt;809375de&gt;] neigh_resolve_output+0xee/0x2a0
[   10.156026] hardirqs last disabled at (52069): [&lt;809375a8&gt;] neigh_resolve_output+0xb8/0x2a0
[   10.156026] softirqs last  enabled at (52020): [&lt;8044401f&gt;] _local_bh_enable+0x1f/0x50
[   10.156026] softirqs last disabled at (52021): [&lt;80404036&gt;] do_softirq_own_stack+0x26/0x30
[   10.156026]
[   10.156026] other info that might help us debug this:
[   10.156026]  Possible unsafe locking scenario:
[   10.156026]
[   10.156026]        CPU0
[   10.156026]        ----
[   10.156026]   lock(_xmit_ETHER);
[   10.156026]   &lt;Interrupt&gt;
[   10.156026]     lock(_xmit_ETHER);
[   10.156026]
[   10.156026]  *** DEADLOCK ***
[   10.156026]
[   10.156026] 4 locks held by swapper/1/0:
[   10.156026]  #0:  (((&amp;idev-&gt;mc_ifc_timer))){+.-...}, at: [&lt;8044b100&gt;] call_timer_fn+0x0/0x190
[   10.156026]  #1:  (rcu_read_lock){......}, at: [&lt;a0577c40&gt;] mld_sendpack+0x0/0x590 [ipv6]
[   10.156026]  #2:  (rcu_read_lock_bh){......}, at: [&lt;a055680c&gt;] ip6_finish_output2+0x4c/0x7f0 [ipv6]
[   10.156026]  #3:  (rcu_read_lock_bh){......}, at: [&lt;8092e510&gt;] __dev_queue_xmit+0x0/0x5f0
[   10.156026]
[   10.156026] stack backtrace:
[   10.156026] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.16.0-rc5+ #13
[   10.156026]  811dbb10 00000000 9e919d10 809e6785 9e8b8000 9e919d3c 809e561e 80b95511
[   10.156026]  80b9545a 80b9543d 80b95450 80b95441 80b957e4 9e8b84e0 00000002 8047f7b0
[   10.156026]  9e919d5c 8048043b 00000002 00000000 9e8b8000 00000001 00000004 9e8b8000
[   10.156026] Call Trace:
[   10.156026]  [&lt;809e6785&gt;] dump_stack+0x48/0x69
[   10.156026]  [&lt;809e561e&gt;] print_usage_bug+0x18f/0x19c
[   10.156026]  [&lt;8047f7b0&gt;] ? print_shortest_lock_dependencies+0x170/0x170
[   10.156026]  [&lt;8048043b&gt;] mark_lock+0x53b/0x5f0
[   10.156026]  [&lt;804810cf&gt;] __lock_acquire+0x6df/0x17a0
[   10.156026]  [&lt;804828ba&gt;] lock_acquire+0x6a/0xf0
[   10.156026]  [&lt;80948b6a&gt;] ? sch_direct_xmit+0x7a/0x250
[   10.156026]  [&lt;809ed477&gt;] _raw_spin_lock+0x27/0x40
[   10.156026]  [&lt;80948b6a&gt;] ? sch_direct_xmit+0x7a/0x250
[   10.156026]  [&lt;80948b6a&gt;] sch_direct_xmit+0x7a/0x250
[   10.156026]  [&lt;8092e6bf&gt;] __dev_queue_xmit+0x1af/0x5f0
[   10.156026]  [&lt;80947fc0&gt;] ? ether_setup+0x80/0x80
[   10.156026]  [&lt;8092eb0f&gt;] dev_queue_xmit+0xf/0x20
[   10.156026]  [&lt;8093764c&gt;] neigh_resolve_output+0x15c/0x2a0
[   10.156026]  [&lt;a0556927&gt;] ip6_finish_output2+0x167/0x7f0 [ipv6]
[   10.156026]  [&lt;a0559b05&gt;] ip6_finish_output+0x85/0x1c0 [ipv6]
[   10.156026]  [&lt;a0559cb7&gt;] ip6_output+0x77/0x240 [ipv6]
[   10.156026]  [&lt;a0578163&gt;] mld_sendpack+0x523/0x590 [ipv6]
[   10.156026]  [&lt;80480501&gt;] ? mark_held_locks+0x11/0x90
[   10.156026]  [&lt;a057947d&gt;] mld_ifc_timer_expire+0x15d/0x280 [ipv6]
[   10.156026]  [&lt;8044b168&gt;] call_timer_fn+0x68/0x190
[   10.156026]  [&lt;a0579320&gt;] ? igmp6_group_added+0x150/0x150 [ipv6]
[   10.156026]  [&lt;8044b3fa&gt;] run_timer_softirq+0x16a/0x240
[   10.156026]  [&lt;a0579320&gt;] ? igmp6_group_added+0x150/0x150 [ipv6]
[   10.156026]  [&lt;80444984&gt;] __do_softirq+0xd4/0x2f0
[   10.156026]  [&lt;804448b0&gt;] ? tasklet_action+0x100/0x100
[   10.156026]  [&lt;80404036&gt;] do_softirq_own_stack+0x26/0x30
[   10.156026]  &lt;IRQ&gt;  [&lt;80444d05&gt;] irq_exit+0x65/0x70
[   10.156026]  [&lt;8042d758&gt;] smp_apic_timer_interrupt+0x38/0x50
[   10.156026]  [&lt;809ee91f&gt;] apic_timer_interrupt+0x2f/0x34
[   10.156026]  [&lt;8048007b&gt;] ? mark_lock+0x17b/0x5f0
[   10.156026]  [&lt;8040a912&gt;] ? default_idle+0x22/0xf0
[   10.156026]  [&lt;8040b13e&gt;] arch_cpu_idle+0xe/0x10
[   10.156026]  [&lt;8047bfc6&gt;] cpu_startup_entry+0x206/0x410
[   10.156026]  [&lt;8042bfbd&gt;] start_secondary+0x19d/0x1e0

Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Reported-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Jeff Westfahl &lt;jeff.westfahl@ni.com&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: &lt;linux-usb@vger.kernel.org&gt;
Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'usb-for-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next</title>
<updated>2014-07-21T18:33:41+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2014-07-21T18:33:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=61fe2d75f138992f116ee70e83f10ff2d7e79143'/>
<id>61fe2d75f138992f116ee70e83f10ff2d7e79143</id>
<content type='text'>
Felipe writes:

usb: patches for v3.17 merge window

Surprisingly enough, while a big set of patches, the majority is
composed of cleanups (using devm_*, fixing sparse errors, moving
code around, adding const, etc).

The highlights are addition of new support for PLX USB338x devices,
and support for USB 2.0-only configurations of the DWC3 IP core.

Signed-of-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Felipe writes:

usb: patches for v3.17 merge window

Surprisingly enough, while a big set of patches, the majority is
composed of cleanups (using devm_*, fixing sparse errors, moving
code around, adding const, etc).

The highlights are addition of new support for PLX USB338x devices,
and support for USB 2.0-only configurations of the DWC3 IP core.

Signed-of-by: Felipe Balbi &lt;balbi@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: gadget: Gadget directory cleanup - group usb functions</title>
<updated>2014-07-16T17:50:36+00:00</updated>
<author>
<name>Andrzej Pietrasiewicz</name>
<email>andrzej.p@samsung.com</email>
</author>
<published>2014-07-15T11:09:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=00a2430ff07d4e0e0e7e24e02fd8adede333b797'/>
<id>00a2430ff07d4e0e0e7e24e02fd8adede333b797</id>
<content type='text'>
The drivers/usb/gadget directory contains many files.
Files which are related can be distributed into separate directories.
This patch moves the USB functions implementations into a separate directory.

Signed-off-by: Andrzej Pietrasiewicz &lt;andrzej.p@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The drivers/usb/gadget directory contains many files.
Files which are related can be distributed into separate directories.
This patch moves the USB functions implementations into a separate directory.

Signed-off-by: Andrzej Pietrasiewicz &lt;andrzej.p@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
