From: Hans de Goede Date: Sat, 13 Sep 2014 10:26:51 +0000 (+0200) Subject: uas: Add response iu handling X-Git-Tag: v3.18-rc1~131^2~61 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fac1f48584c1b6c745412cf8c5dbdc1725aad8f2;p=platform%2Fkernel%2Flinux-exynos.git uas: Add response iu handling If something goes wrong in our communication with an uas device we may get a response iu in reaction to a cmnd, rather then a status iu. In this case propagate an error upwards, rather then logging a bogus iu message. Signed-off-by: Hans de Goede Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index dfa1191..b27fe21 100644 --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c @@ -328,6 +328,16 @@ static void uas_stat_cmplt(struct urb *urb) } uas_xfer_data(urb, cmnd, SUBMIT_DATA_OUT_URB); break; + case IU_ID_RESPONSE: + uas_log_cmd_state(cmnd, "unexpected response iu", + ((struct response_iu *)iu)->response_code); + /* Error, cancel data transfers */ + data_in_urb = usb_get_urb(cmdinfo->data_in_urb); + data_out_urb = usb_get_urb(cmdinfo->data_out_urb); + cmdinfo->state &= ~COMMAND_INFLIGHT; + cmnd->result = DID_ERROR << 16; + uas_try_complete(cmnd, __func__); + break; default: uas_log_cmd_state(cmnd, "bogus IU", iu->iu_id); }