From: Ben Hutchings Date: Mon, 6 Jan 2014 03:16:32 +0000 (+0000) Subject: xhci: Avoid infinite loop when sg urb requires too many trbs X-Git-Tag: v3.14-rc1~148^2~17^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6c9ea9069af684358efedcaf2f2f687f51c58ee;p=pandora-kernel.git xhci: Avoid infinite loop when sg urb requires too many trbs 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: 35773dac5f86 ('usb: xhci: Link TRB must not occur within a USB payload burst') Cc: stable # 3.12 Signed-off-by: Ben Hutchings Signed-off-by: Sarah Sharp --- Reading git-diff-tree failed