<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/usb/gadget, branch linux-4.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-07-10T16:45:39Z</updated>
<entry>
<title>usb: gadget: f_fs: add extra check before unregister_gadget_item</title>
<updated>2015-07-10T16:45:39Z</updated>
<author>
<name>Rui Miguel Silva</name>
</author>
<published>2015-05-20T13:52:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7fa24a821af13e4cf468e9c9e2cfeae6b71832d3'/>
<id>urn:sha1:7fa24a821af13e4cf468e9c9e2cfeae6b71832d3</id>
<content type='text'>
commit f14e9ad17f46051b02bffffac2036486097de19e upstream.

ffs_closed can race with configfs_rmdir which will call config_item_release, so
add an extra check to avoid calling the unregister_gadget_item with an null
gadget item.

Signed-off-by: Rui Miguel Silva &lt;rui.silva@linaro.org&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: gadget: f_fs: fix check in read operation</title>
<updated>2015-07-10T16:45:38Z</updated>
<author>
<name>Rui Miguel Silva</name>
</author>
<published>2015-05-20T13:53:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b5531419e0537db4b9f92e1c615bf76fc55d98b'/>
<id>urn:sha1:0b5531419e0537db4b9f92e1c615bf76fc55d98b</id>
<content type='text'>
commit 342f39a6c8d34d638a87b7d5f2156adc4db2585c upstream.

when copying to iter the size can be different then the iov count,
the check for full iov is wrong and make any read on request which
is not the exactly size of iov to return -EFAULT.

So, just check the success of the copy.

Signed-off-by: Rui Miguel Silva &lt;rui.silva@linaro.org&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: gadget: configfs: Fix interfaces array NULL-termination</title>
<updated>2015-06-06T15:21:00Z</updated>
<author>
<name>Krzysztof Opasiak</name>
</author>
<published>2015-03-20T14:48:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9db6a88484e409459d053b88ba594d1d26ef5f1c'/>
<id>urn:sha1:9db6a88484e409459d053b88ba594d1d26ef5f1c</id>
<content type='text'>
commit 903124fe1aa284f61745a9dd4fbfa0184e569fff upstream.

memset() to 0 interfaces array before reusing
usb_configuration structure.

This commit fix bug:

ln -s functions/acm.1 configs/c.1
ln -s functions/acm.2 configs/c.1
ln -s functions/acm.3 configs/c.1
echo "UDC name" &gt; UDC
echo "" &gt; UDC
rm configs/c.1/acm.*
rmdir functions/*
mkdir functions/ecm.usb0
ln -s functions/ecm.usb0 configs/c.1
echo "UDC name" &gt; UDC

[   82.220969] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[   82.229009] pgd = c0004000
[   82.231698] [00000000] *pgd=00000000
[   82.235260] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
[   82.240638] Modules linked in:
[   82.243681] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.0.0-rc2 #39
[   82.249926] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[   82.256003] task: c07cd2f0 ti: c07c8000 task.ti: c07c8000
[   82.261393] PC is at composite_setup+0xe3c/0x1674
[   82.266073] LR is at composite_setup+0xf20/0x1674
[   82.270760] pc : [&lt;c03510d4&gt;]    lr : [&lt;c03511b8&gt;]    psr: 600001d3
[   82.270760] sp : c07c9df0  ip : c0806448  fp : ed8c9c9c
[   82.282216] r10: 00000001  r9 : 00000000  r8 : edaae918
[   82.287425] r7 : ed551cc0  r6 : 00007fff  r5 : 00000000  r4 : ed799634
[   82.293934] r3 : 00000003  r2 : 00010002  r1 : edaae918  r0 : 0000002e
[   82.300446] Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
[   82.307910] Control: 10c5387d  Table: 6bc1804a  DAC: 00000015
[   82.313638] Process swapper/0 (pid: 0, stack limit = 0xc07c8210)
[   82.319627] Stack: (0xc07c9df0 to 0xc07ca000)
[   82.323969] 9de0:                                     00000000 c06e65f4 00000000 c07c9f68
[   82.332130] 9e00: 00000067 c07c59ac 000003f7 edaae918 ed8c9c98 ed799690 eca2f140 200001d3
[   82.340289] 9e20: ee79a2d8 c07c9e88 c07c5304 ffff55db 00010002 edaae810 edaae860 eda96d50
[   82.348448] 9e40: 00000009 ee264510 00000007 c07ca444 edaae860 c0340890 c0827a40 ffff55e0
[   82.356607] 9e60: c0827a40 eda96e40 ee264510 edaae810 00000000 edaae860 00000007 c07ca444
[   82.364766] 9e80: edaae860 c0354170 c03407dc c033db4c edaae810 00000000 00000000 00000010
[   82.372925] 9ea0: 00000032 c0341670 00000000 00000000 00000001 eda96e00 00000000 00000000
[   82.381084] 9ec0: 00000000 00000032 c0803a23 ee1aa840 00000001 c005d54c 249e2450 00000000
[   82.389244] 9ee0: 200001d3 ee1aa840 ee1aa8a0 ed84f4c0 00000000 c07c9f68 00000067 c07c59ac
[   82.397403] 9f00: 00000000 c005d688 ee1aa840 ee1aa8a0 c07db4b4 c006009c 00000032 00000000
[   82.405562] 9f20: 00000001 c005ce20 c07c59ac c005cf34 f002000c c07ca780 c07c9f68 00000057
[   82.413722] 9f40: f0020000 413fc090 00000001 c00086b4 c000f804 60000053 ffffffff c07c9f9c
[   82.421880] 9f60: c0803a20 c0011fc0 00000000 00000000 c07c9fb8 c001bee0 c07ca4f0 c057004c
[   82.430040] 9f80: c07ca4fc c0803a20 c0803a20 413fc090 00000001 00000000 01000000 c07c9fb0
[   82.438199] 9fa0: c000f800 c000f804 60000053 ffffffff 00000000 c0050e70 c0803bc0 c0783bd8
[   82.446358] 9fc0: ffffffff ffffffff c0783664 00000000 00000000 c07b13e8 00000000 c0803e54
[   82.454517] 9fe0: c07ca480 c07b13e4 c07ce40c 4000406a 00000000 40008074 00000000 00000000
[   82.462689] [&lt;c03510d4&gt;] (composite_setup) from [&lt;c0340890&gt;] (s3c_hsotg_complete_setup+0xb4/0x418)
[   82.471626] [&lt;c0340890&gt;] (s3c_hsotg_complete_setup) from [&lt;c0354170&gt;] (usb_gadget_giveback_request+0xc/0x10)
[   82.481429] [&lt;c0354170&gt;] (usb_gadget_giveback_request) from [&lt;c033db4c&gt;] (s3c_hsotg_complete_request+0xcc/0x12c)
[   82.491583] [&lt;c033db4c&gt;] (s3c_hsotg_complete_request) from [&lt;c0341670&gt;] (s3c_hsotg_irq+0x4fc/0x558)
[   82.500614] [&lt;c0341670&gt;] (s3c_hsotg_irq) from [&lt;c005d54c&gt;] (handle_irq_event_percpu+0x50/0x150)
[   82.509291] [&lt;c005d54c&gt;] (handle_irq_event_percpu) from [&lt;c005d688&gt;] (handle_irq_event+0x3c/0x5c)
[   82.518145] [&lt;c005d688&gt;] (handle_irq_event) from [&lt;c006009c&gt;] (handle_fasteoi_irq+0xd4/0x18c)
[   82.526650] [&lt;c006009c&gt;] (handle_fasteoi_irq) from [&lt;c005ce20&gt;] (generic_handle_irq+0x20/0x30)
[   82.535242] [&lt;c005ce20&gt;] (generic_handle_irq) from [&lt;c005cf34&gt;] (__handle_domain_irq+0x6c/0xdc)
[   82.543923] [&lt;c005cf34&gt;] (__handle_domain_irq) from [&lt;c00086b4&gt;] (gic_handle_irq+0x2c/0x6c)
[   82.552256] [&lt;c00086b4&gt;] (gic_handle_irq) from [&lt;c0011fc0&gt;] (__irq_svc+0x40/0x74)
[   82.559716] Exception stack(0xc07c9f68 to 0xc07c9fb0)
[   82.564753] 9f60:                   00000000 00000000 c07c9fb8 c001bee0 c07ca4f0 c057004c
[   82.572913] 9f80: c07ca4fc c0803a20 c0803a20 413fc090 00000001 00000000 01000000 c07c9fb0
[   82.581069] 9fa0: c000f800 c000f804 60000053 ffffffff
[   82.586113] [&lt;c0011fc0&gt;] (__irq_svc) from [&lt;c000f804&gt;] (arch_cpu_idle+0x30/0x3c)
[   82.593491] [&lt;c000f804&gt;] (arch_cpu_idle) from [&lt;c0050e70&gt;] (cpu_startup_entry+0x128/0x1a4)
[   82.601740] [&lt;c0050e70&gt;] (cpu_startup_entry) from [&lt;c0783bd8&gt;] (start_kernel+0x350/0x3bc)
[   82.609890] Code: 0a000002 e3530005 05975010 15975008 (e5953000)
[   82.615965] ---[ end trace f57d5f599a5f1bfa ]---

Most of kernel code assume that interface array in
struct usb_configuration is NULL terminated.

When gadget is composed with configfs configuration
structure may be reused for different functions set.

This bug happens because purge_configs_funcs() sets
only next_interface_id to 0. Interface array still
contains pointers to already freed interfaces. If in
second try we add less interfaces than earlier we
may access unallocated memory when trying to get
interface descriptors.

Signed-off-by: Krzysztof Opasiak &lt;k.opasiak@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: gadget: printer: enqueue printer's response for setup request</title>
<updated>2015-05-06T20:03:38Z</updated>
<author>
<name>Andrzej Pietrasiewicz</name>
</author>
<published>2015-03-03T09:52:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9297ed24421df19f5c5085d65ee2575a63524447'/>
<id>urn:sha1:9297ed24421df19f5c5085d65ee2575a63524447</id>
<content type='text'>
commit eb132ccbdec5df46e29c9814adf76075ce83576b upstream.

Function-specific setup requests should be handled in such a way, that
apart from filling in the data buffer, the requests are also actually
enqueued: if function-specific setup is called from composte_setup(),
the "usb_ep_queue()" block of code in composite_setup() is skipped.

The printer function lacks this part and it results in e.g. get device id
requests failing: the host expects some response, the device prepares it
but does not equeue it for sending to the host, so the host finally asserts
timeout.

This patch adds enqueueing the prepared responses.

Fixes: 2e87edf49227: "usb: gadget: make g_printer use composite"
Signed-off-by: Andrzej Pietrasiewicz &lt;andrzej.p@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Merge tag 'usb-4.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb</title>
<updated>2015-03-22T18:33:55Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2015-03-22T18:33:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cedd5f659eb9b51a6869806aa123fb10f8f83d86'/>
<id>urn:sha1:cedd5f659eb9b51a6869806aa123fb10f8f83d86</id>
<content type='text'>
Pull USB / PHY driver fixes from Greg KH:
 "Here's a number of USB and PHY driver fixes for 4.0-rc5.

  The largest thing here is a revert of a gadget function driver patch
  that removes 500 lines of code.  Other than that, it's a number of
  reported bugs fixes and new quirk/id entries.

  All have been in linux-next for a while"

* tag 'usb-4.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (33 commits)
  usb: common: otg-fsm: only signal connect after switching to peripheral
  uas: Add US_FL_NO_ATA_1X for Initio Corporation controllers / devices
  USB: ehci-atmel: rework clk handling
  MAINTAINERS: add entry for USB OTG FSM
  usb: chipidea: otg: add a_alt_hnp_support response for B device
  phy: omap-usb2: Fix missing clk_prepare call when using old dt name
  phy: ti/omap: Fix modalias
  phy: core: Fixup return value of phy_exit when !pm_runtime_enabled
  phy: miphy28lp: Convert to devm_kcalloc and fix wrong sizof
  phy: miphy365x: Convert to devm_kcalloc and fix wrong sizeof
  phy: twl4030-usb: Remove redundant assignment for twl-&gt;linkstat
  phy: exynos5-usbdrd: Fix off-by-one valid value checking for args-&gt;args[0]
  phy: Find the right match in devm_phy_destroy()
  phy: rockchip-usb: Fixup rockchip_usb_phy_power_on failure path
  phy: ti-pipe3: Simplify ti_pipe3_dpll_wait_lock implementation
  phy: samsung-usb2: Remove NULL terminating entry from phys array
  phy: hix5hd2-sata: Check return value of platform_get_resource
  phy: exynos-dp-video: Kill exynos_dp_video_phy_pwr_isol function
  Revert "usb: gadget: zero: Add support for interrupt EP"
  Revert "xhci: Clear the host side toggle manually when endpoint is 'soft reset'"
  ...
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending</title>
<updated>2015-03-21T18:24:38Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2015-03-21T18:24:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e477f3e01304f011f2fbc416241439019bf890ea'/>
<id>urn:sha1:e477f3e01304f011f2fbc416241439019bf890ea</id>
<content type='text'>
Pull SCSI target fixes from Nicholas Bellinger:
 "Here are current target-pending fixes for v4.0-rc5 code that have made
  their way into the queue over the last weeks.

  The fixes this round include:

   - Fix long-standing iser-target logout bug related to early
     conn_logout_comp completion, resulting in iscsi_conn use-after-tree
     OOpsen.  (Sagi + nab)

   - Fix long-standing tcm_fc bug in ft_invl_hw_context() failure
     handing for DDP hw offload.  (DanC)

   - Fix incorrect use of unprotected __transport_register_session() in
     tcm_qla2xxx + other single local se_node_acl fabrics.  (Bart)

   - Fix reference leak in target_submit_cmd() -&gt; target_get_sess_cmd()
     for ack_kref=1 failure path.  (Bart)

   - Fix pSCSI backend -&gt;get_device_type() statistics OOPs with
     un-configured device.  (Olaf + nab)

   - Fix virtual LUN=0 target_configure_device failure OOPs at modprobe
     time.  (Claudio + nab)

   - Fix FUA write false positive failure regression in v4.0-rc1 code.
     (Christophe Vu-Brugier + HCH)"

* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
  target: do not reject FUA CDBs when write cache is enabled but emulate_write_cache is 0
  target: Fix virtual LUN=0 target_configure_device failure OOPs
  target/pscsi: Fix NULL pointer dereference in get_device_type
  tcm_fc: missing curly braces in ft_invl_hw_context()
  target: Fix reference leak in target_get_sess_cmd() error path
  loop/usb/vhost-scsi/xen-scsiback: Fix use of __transport_register_session
  tcm_qla2xxx: Fix incorrect use of __transport_register_session
  iscsi-target: Avoid early conn_logout_comp for iser connections
  Revert "iscsi-target: Avoid IN_LOGOUT failure case for iser-target"
  target: Disallow changing of WRITE cache/FUA attrs after export
</content>
</entry>
<entry>
<title>loop/usb/vhost-scsi/xen-scsiback: Fix use of __transport_register_session</title>
<updated>2015-03-20T06:15:14Z</updated>
<author>
<name>Bart Van Assche</name>
</author>
<published>2015-02-12T10:48:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2f450cc1fbe9713f79b217e61ab204e263723ead'/>
<id>urn:sha1:2f450cc1fbe9713f79b217e61ab204e263723ead</id>
<content type='text'>
This patch changes loopback, usb-gadget, vhost-scsi and xen-scsiback
fabric code to invoke transport_register_session() instead of the
unprotected flavour, to ensure se_tpg-&gt;session_lock is taken when
adding new session list nodes to se_tpg-&gt;tpg_sess_list.

Note that since these four fabric drivers already hold their own
internal TPG mutexes when accessing se_tpg-&gt;tpg_sess_list, and
consist of a single se_session created through configfs attribute
access, no list corruption can currently occur.

So for correctness sake, go ahead and use the se_tpg-&gt;session_lock
protected version for these four fabric drivers.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'gadget' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs</title>
<updated>2015-03-13T17:55:32Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2015-03-13T17:55:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f788baadbdd95b0309ab8e1565d5c425e197b8db'/>
<id>urn:sha1:f788baadbdd95b0309ab8e1565d5c425e197b8db</id>
<content type='text'>
Pull gadgetfs fixes from Al Viro:
 "Assorted fixes around AIO on gadgetfs: leaks, use-after-free, troubles
  caused by -&gt;f_op flipping"

* 'gadget' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  gadgetfs: really get rid of switching -&gt;f_op
  gadgetfs: get rid of flipping -&gt;f_op in ep_config()
  gadget: switch ep_io_operations to -&gt;read_iter/-&gt;write_iter
  gadgetfs: use-after-free in -&gt;aio_read()
  gadget/function/f_fs.c: switch to -&gt;{read,write}_iter()
  gadget/function/f_fs.c: use put iov_iter into io_data
  gadget/function/f_fs.c: close leaks
  move iov_iter.c from mm/ to lib/
  new helper: dup_iter()
</content>
</entry>
<entry>
<title>Revert "usb: gadget: zero: Add support for interrupt EP"</title>
<updated>2015-03-11T15:00:05Z</updated>
<author>
<name>Felipe Balbi</name>
</author>
<published>2015-03-11T15:00:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2c247804796bbcaa90087f2196f68fdc20a5fe04'/>
<id>urn:sha1:2c247804796bbcaa90087f2196f68fdc20a5fe04</id>
<content type='text'>
This reverts commit ef11982dd7a657512c362242508bb4021e0d67b6.

That commit creates a problem for some UDCs (at least musb)
where it allocates an endpoints with a 64-byte FIFO, but later
tries to use that same FIFO for 1024-byte packets.

Before implementing this, composite framework needs to be
modified so we only allocate endpoints after we know negotiated
speed, however that needs quite a bit of extra work.

Cc: &lt;stable@vger.kernel.org&gt; # v3.18+
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>gadgetfs: really get rid of switching -&gt;f_op</title>
<updated>2015-03-08T19:19:03Z</updated>
<author>
<name>Alan Stern</name>
</author>
<published>2015-03-04T15:31:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=96b62a57193494010eed66ca0739c93eb4653162'/>
<id>urn:sha1:96b62a57193494010eed66ca0739c93eb4653162</id>
<content type='text'>
... for ep0 as well

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
</feed>
