1. 01 10月, 2013 2 次提交
    • R
      usb: gadget: f_fs: fix error handling · 8854894c
      Robert Baldyga 提交于
      This patch add missing error check in ffs_func_bind() function, after
      ffs_do_descs() function call for high speed descriptors. Without this
      check it's possible that the module will try dereference incorrect
      pointer.
      
      [ balbi@ti.com : removed trailing empty line ]
      Acked-by: NMichal Nazarewicz <mina86@mina86.com>
      Signed-off-by: NRobert Baldyga <r.baldyga@samsung.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      8854894c
    • S
      usb: musb: dsps: do not bind to "musb-hdrc" · 4fc4b274
      Sebastian Andrzej Siewior 提交于
      This went unnoticed in durin the merge window:
      The dsps driver creates a child device for the musb core driver _and_
      attaches the of_node to it so devm_usb_get_phy_by_phandle() grabs the
      correct phy and attaches the devm resources to the proper device. We
      could also use the parent device but then devm would attach the
      resource to the wrong device and it would be destroyed once the parent
      device is gone - not the device that is used by the musb core driver.
      
      If the phy is now not available then dsps_musb_init() /
      devm_usb_get_phy_by_phandle() returns with EPROBE_DEFER. Since the
      of_node is attached it tries OF drivers as well and matches the driver
      against DSPS. That one creates a new child device for the musb core
      driver which gets probed immediately.
      
      The whole thing repeats itself until the stack overflows.
      
      I belive the same problem exists in ux500 glue code (since 313bdb11
      ("usb: musb: ux500: add device tree probing support") but the drivers are
      now probed in the right order so they don't see it.
      
      The problem is that the dsps driver gets bound to the musb-child device
      due to the same of_node / matching binding. I don't really agree with
      having yet another child node in DT to fix this. Ideally we would have
      musb core driver with DT bindings and according to the binding we would
      select the few extra hacks / gleue layer.
      
      Therefore I suggest the driver to reject the musb-core device.
      
      Cc: Lee Jones <lee.jones@linaro.org>
      Tested-by: NTom Rini <trini@ti.com>
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      4fc4b274
  2. 26 9月, 2013 1 次提交
  3. 24 9月, 2013 2 次提交
  4. 18 9月, 2013 10 次提交
  5. 17 9月, 2013 5 次提交
  6. 13 9月, 2013 1 次提交
  7. 31 8月, 2013 9 次提交
  8. 29 8月, 2013 1 次提交
    • S
      xhci: Fix warning introduced by disabling runtime PM. · e7ecf069
      Sarah Sharp 提交于
      The 0day build server caught a new build warning that is triggered when
      CONFIG_USB_DEFAULT_PERSIST is turned on:
      
      tree:   git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci.git for-usb-next
      head:   0730d52a
      commit: c8476fb8 [1/3] usb: xhci: Disable runtime PM suspend for quirky controllers
      config: i386-randconfig-r6-0826 (attached as .config)
      
      All warnings:
      
         drivers/usb/host/xhci.c: In function 'xhci_free_dev':
      >> drivers/usb/host/xhci.c:3560:17: warning: unused variable 'dev' [-Wunused-variable]
           struct device *dev = hcd->self.controller;
                          ^
         drivers/usb/host/xhci.c: In function 'xhci_alloc_dev':
      >> drivers/usb/host/xhci.c:3648:17: warning: unused variable 'dev' [-Wunused-variable]
           struct device *dev = hcd->self.controller;
                          ^
      
      vim +/dev +3560 drivers/usb/host/xhci.c
      
        3554   * disabled.  Free any HC data structures associated with that device.
        3555   */
        3556  void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev)
        3557  {
        3558          struct xhci_hcd *xhci = hcd_to_xhci(hcd);
        3559          struct xhci_virt_device *virt_dev;
      > 3560          struct device *dev = hcd->self.controller;
        3561          unsigned long flags;
        3562          u32 state;
        3563          int i, ret;
        3564
        3565  #ifndef CONFIG_USB_DEFAULT_PERSIST
        3566          /*
        3567           * We called pm_runtime_get_noresume when the device was attached.
        3568           * Decrement the counter here to allow controller to runtime suspend
        3569           * if no devices remain.
        3570           */
        3571          if (xhci->quirks & XHCI_RESET_ON_RESUME)
        3572                  pm_runtime_put_noidle(dev);
        3573  #endif
        3574
      ...
        3641  /*
        3642   * Returns 0 if the xHC ran out of device slots, the Enable Slot command
        3643   * timed out, or allocating memory failed.  Returns 1 on success.
        3644   */
        3645  int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev)
        3646  {
        3647          struct xhci_hcd *xhci = hcd_to_xhci(hcd);
      > 3648          struct device *dev = hcd->self.controller;
        3649          unsigned long flags;
        3650          int timeleft;
        3651          int ret;
      
      Fix this.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Cc: Shawn Nematbakhsh <shawnn@chromium.org>
      e7ecf069
  9. 28 8月, 2013 9 次提交