[GIT PULL] xhci: Revert TD fragment hacks.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following changes since commit 03b56329f9bb5a1cb73d7dc659d529a9a9bf3acc:

  Modpost: fixed USB alias generation for ranges including 0x9 and 0xA (2014-02-07 11:26:35 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci.git tags/for-usb-linus-2014-02-11

for you to fetch changes up to 3d4b81eda2211f32886e2978daf6f39885042fc4:

  Revert "usb: xhci: Link TRB must not occur within a USB payload burst" (2014-02-07 14:30:03 -0800)

----------------------------------------------------------------
xhci: Revert TD fragment hacks.

Hi Greg,

Recently, we found that commit "35773dac5f86 "usb: xhci: Link TRB must not
occur within a USB payload burst" causes a userspace regression.  It will
cause larger transfers submitted through usbfs that would have succeeded
on older kernels to be rejected.

Commit 35773dac5f86 was designed to address an issue where an ASIX USB
ethernet device would get wedged when it was connected to a 1.0 xHCI
host.  Only this particular ethernet device was impacted, because only the
ax88179_178a driver implemented scatter-gather in 3.12.  The xHCI driver
doesn't currently support TD fragment rules, and commit 35773dac5f86 was a
quick hack that partially implemented one of the rules.

This is the third regression this patch has caused.  There's yet another
quick hack to work around the issue, but I really want to support TD
fragments properly, rather than hacking around it.  It will take us a
kernel release or two to get it implemented, since it is a big
architectural change.

This patchset backs out commit 35773dac5f86, and the two bug fix patches
for it.  The first patch limits arbitrarily aligned scatter-gather under
xHCI 1.0 hosts.

As a result of this patchset:

1. usb-storage and uas will still be able to use scatter-gather, since
   they submit max packet sized aligned transfers.
2. usbfs will behave exactly as before, no more userspace regressions.
3. The ax88179_178a driver works fine without scatter-gather (Mark Lord
   confirms this).

Users of the ASIX chipset may still see occasional packet loss on 1.0 xHCI
hosts, if the xHCI driver needs to split a TRB across 64-KB boundaries,
and a link TRB happens to fall between those two TRBs.  I expect this
corner case to be infrequent.

Sarah Sharp

----------------------------------------------------------------
Sarah Sharp (4):
      xhci 1.0: Limit arbitrarily-aligned scatter gather.
      Revert "xhci: Set scatter-gather limit to avoid failed block writes."
      Revert "xhci: Avoid infinite loop when sg urb requires too many trbs"
      Revert "usb: xhci: Link TRB must not occur within a USB payload burst"

 drivers/usb/host/xhci-ring.c |   54 +----------------------------------------
 drivers/usb/host/xhci.c      |   18 ++++++++++----
 drivers/usb/host/xhci.h      |    2 +-
 include/linux/usb.h          |    2 -
 4 files changed, 16 insertions(+), 60 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux