1. 20 Feb, 2019 1 commit
  2. 19 Feb, 2019 9 commits
  3. 15 Feb, 2019 1 commit
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next · dc8b2a69
      Greg Kroah-Hartman authored
      Felipe writes:
      
      USB: changes for v5.1 merge window
      
      Dwc3 now works on TI's AM6xx platforms. Also on dwc3 we have a few
      changes which improve request cancellation and some improvements to
      how we print to the trace buffer.
      
      Renesas_usb3 got support for r8a774c0 device.
      
      Dwc2 got scatter-gather support.
      
      Apart from these, the usual set of minor fixes and all sorts of small
      details.
      
      * tag 'usb-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: (40 commits)
        usb: phy: twl6030-usb: fix possible use-after-free on remove
        usb: misc: usbtest: add super-speed isoc support
        usb: dwc3: Reset num_trbs after skipping
        usb: dwc3: gadget: don't enable interrupt when disabling endpoint
        fotg210-udc: pass struct device to DMA API functions
        fotg210-udc: remove a bogus dma_sync_single_for_device call
        usb: gadget: Change Andrzej Pietrasiewicz's e-mail address
        usb: f_fs: Avoid crash due to out-of-scope stack ptr access
        usb: dwc3: haps: Workaround matching VID PID
        usb: gadget: f_fs: preserve wMaxPacketSize across usb_ep_autoconfig() call
        usb: gadget: move non-super speed code out of usb_ep_autoconfig_ss()
        usb: gadget: function: sync f_uac1 ac header baInterfaceNr
        usb: dwc2: gadget: Add scatter-gather mode
        usb: gadget: fix various indentation issues
        usb: dwc2: Fix EP TxFIFO number setting
        udc: net2280: Fix net2280_disable
        USB: gadget: Improve kerneldoc for usb_ep_dequeue()
        usb: dwc3: debug: purge usage of strcat
        usb: dwc3: trace: pass trace buffer size to decoding functions
        usb: dwc3: gadget: remove DWC3_EP_END_TRANSFER_PENDING
        ...
      dc8b2a69
  4. 14 Feb, 2019 10 commits
  5. 13 Feb, 2019 6 commits
  6. 12 Feb, 2019 9 commits
  7. 11 Feb, 2019 4 commits
    • Christoph Hellwig's avatar
      fotg210-udc: pass struct device to DMA API functions · e26bdb01
      Christoph Hellwig authored
      The DMA API generally relies on a struct device to work properly, and
      only barely works without one for legacy reasons.  Pass the easily
      available struct device from the platform_device to remedy this.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
      e26bdb01
    • Christoph Hellwig's avatar
      fotg210-udc: remove a bogus dma_sync_single_for_device call · 8c7ffa5e
      Christoph Hellwig authored
      dma_map_single already transfers ownership to the device.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
      8c7ffa5e
    • Andrzej Pietrasiewicz's avatar
      usb: gadget: Change Andrzej Pietrasiewicz's e-mail address · 1b4a3b51
      Andrzej Pietrasiewicz authored
      My @samusung.com address is going to cease existing soon, so change it to
      an address which can actually be used to contact me.
      Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
      Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
      1b4a3b51
    • John Stultz's avatar
      usb: f_fs: Avoid crash due to out-of-scope stack ptr access · 54f64d5c
      John Stultz authored
      Since the 5.0 merge window opened, I've been seeing frequent
      crashes on suspend and reboot with the trace:
      
      [   36.911170] Unable to handle kernel paging request at virtual address ffffff801153d660
      [   36.912769] Unable to handle kernel paging request at virtual address ffffff800004b564
      ...
      [   36.950666] Call trace:
      [   36.950670]  queued_spin_lock_slowpath+0x1cc/0x2c8
      [   36.950681]  _raw_spin_lock_irqsave+0x64/0x78
      [   36.950692]  complete+0x28/0x70
      [   36.950703]  ffs_epfile_io_complete+0x3c/0x50
      [   36.950713]  usb_gadget_giveback_request+0x34/0x108
      [   36.950721]  dwc3_gadget_giveback+0x50/0x68
      [   36.950723]  dwc3_thread_interrupt+0x358/0x1488
      [   36.950731]  irq_thread_fn+0x30/0x88
      [   36.950734]  irq_thread+0x114/0x1b0
      [   36.950739]  kthread+0x104/0x130
      [   36.950747]  ret_from_fork+0x10/0x1c
      
      I isolated this down to in ffs_epfile_io():
      https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/gadget/function/f_fs.c#n1065
      
      Where the completion done is setup on the stack:
        DECLARE_COMPLETION_ONSTACK(done);
      
      Then later we setup a request and queue it, and wait for it:
        if (unlikely(wait_for_completion_interruptible(&done))) {
          /*
          * To avoid race condition with ffs_epfile_io_complete,
          * dequeue the request first then check
          * status. usb_ep_dequeue API should guarantee no race
          * condition with req->complete callback.
          */
          usb_ep_dequeue(ep->ep, req);
          interrupted = ep->status < 0;
        }
      
      The problem is, that we end up being interrupted, dequeue the
      request, and exit.
      
      But then the irq triggers and we try calling complete() on the
      context pointer which points to now random stack space, which
      results in the panic.
      
      Alan Stern pointed out there is a bug here, in that the snippet
      above "assumes that usb_ep_dequeue() waits until the request has
      been completed." And that:
      
          wait_for_completion(&done);
      
      Is needed right after the usb_ep_dequeue().
      
      Thus this patch implements that change. With it I no longer see
      the crashes on suspend or reboot.
      
      This issue seems to have been uncovered by behavioral changes in
      the dwc3 driver in commit fec9095b ("usb: dwc3: gadget:
      remove wait_end_transfer").
      
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Felipe Balbi <balbi@kernel.org>
      Cc: Zeng Tao <prime.zeng@hisilicon.com>
      Cc: Jack Pham <jackp@codeaurora.org>
      Cc: Thinh Nguyen <thinh.nguyen@synopsys.com>
      Cc: Chen Yu <chenyu56@huawei.com>
      Cc: Jerry Zhang <zhangjerry@google.com>
      Cc: Lars-Peter Clausen <lars@metafoo.de>
      Cc: Vincent Pelletier <plr.vincent@gmail.com>
      Cc: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Linux USB List <linux-usb@vger.kernel.org>
      Suggested-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
      Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
      54f64d5c