1. 09 1月, 2014 4 次提交
    • G
      Revert "usb: chipidea: imx: set CI_HDRC_IMX28_WRITE_FIX for imx28" · ac5166bc
      Greg Kroah-Hartman 提交于
      This reverts commit 30666249, as it
      depended on a previous patch that I rejected, causing a build error
      here.  Sorry about that.
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Cc: Peter Chen <peter.chen@freescale.com>
      Cc: Marc Kleine-Budde <mkl@pengutronix.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ac5166bc
    • G
      Merge tag 'for-usb-next-2014-01-08' of... · c0e0f885
      Greg Kroah-Hartman 提交于
      Merge tag 'for-usb-next-2014-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next
      
      Sarah writes:
      
      xhci: Urgent bug fixes for usb-next and 3.14.
      
      Hi Greg,
      
      Please queue these two patches to usb-next for 3.14.
      
      An xHCI driver fix for USB ethernet devices that went into 3.13 and 3.12
      stable is causing usb-storage to go into an infinite loop, and these two
      patches fix the issue.  I would like these to get into 3.14-rc1 so we
      can avoid any potential data corruption for users.
      
      Sarah Sharp
      c0e0f885
    • S
      xhci: Set scatter-gather limit to avoid failed block writes. · f2d9b991
      Sarah Sharp 提交于
      Commit 35773dac "usb: xhci: Link TRB
      must not occur within a USB payload burst" attempted to fix an issue
      found with USB ethernet adapters, and inadvertently broke USB storage
      devices.  The patch attempts to ensure that transfers never span a
      segment, and rejects transfers that have more than 63 entries (or
      possibly less, if some entries cross 64KB boundaries).
      
      usb-storage limits the maximum transfer size to 120K, and we had assumed
      the block layer would pass a scatter-gather list of 4K entries,
      resulting in no more than 31 sglist entries:
      
      http://marc.info/?l=linux-usb&m=138498190419312&w=2
      
      That assumption was wrong, since we've seen the driver reject a write
      that was 218 sectors long (of probably 512 bytes each):
      
      Jan  1 07:04:49 jidanni5 kernel: [  559.624704] xhci_hcd 0000:00:14.0: Too many fragments 79, max 63
      ...
      Jan  1 07:04:58 jidanni5 kernel: [  568.622583] Write(10): 2a 00 00 06 85 0e 00 00 da 00
      
      Limit the number of scatter-gather entries to half a ring segment.  That
      should be margin enough in case some entries cross 64KB boundaries.
      Increase the number of TRBs per segment from 64 to 256, which should
      result in ring segments fitting on a 4K page.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Reported-by: jidanni@jidanni.org
      References: http://bugs.debian.org/733907
      Fixes: 35773dac ('usb: xhci: Link TRB must not occur within a USB payload burst')
      Cc: stable <stable@vger.kernel.org> # 3.12
      f2d9b991
    • B
      xhci: Avoid infinite loop when sg urb requires too many trbs · d6c9ea90
      Ben Hutchings 提交于
      Currently prepare_ring() returns -ENOMEM if the urb won't fit into a
      single ring segment.  usb_sg_wait() treats this error as a temporary
      condition and will keep retrying until something else goes wrong.
      
      The number of retries should be limited in usb_sg_wait(), but also
      prepare_ring() should not return an error code that suggests it might
      be worth retrying.  Change it to -EINVAL.
      
      Reported-by: jidanni@jidanni.org
      References: http://bugs.debian.org/733907
      Fixes: 35773dac ('usb: xhci: Link TRB must not occur within a USB payload burst')
      Cc: stable <stable@vger.kernel.org> # 3.12
      Signed-off-by: NBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      d6c9ea90
  2. 08 1月, 2014 21 次提交
  3. 04 1月, 2014 15 次提交