提交 ef018cc9 编写于 作者: G Gerd Hoffmann 提交者: Greg Kroah-Hartman

USB: uas: remove aborted field, replace with status bit.

Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 03939864
...@@ -64,13 +64,13 @@ enum { ...@@ -64,13 +64,13 @@ enum {
DATA_IN_URB_INFLIGHT = (1 << 9), DATA_IN_URB_INFLIGHT = (1 << 9),
DATA_OUT_URB_INFLIGHT = (1 << 10), DATA_OUT_URB_INFLIGHT = (1 << 10),
COMMAND_COMPLETED = (1 << 11), COMMAND_COMPLETED = (1 << 11),
COMMAND_ABORTED = (1 << 12),
}; };
/* Overrides scsi_pointer */ /* Overrides scsi_pointer */
struct uas_cmd_info { struct uas_cmd_info {
unsigned int state; unsigned int state;
unsigned int stream; unsigned int stream;
unsigned int aborted;
struct urb *cmd_urb; struct urb *cmd_urb;
struct urb *data_in_urb; struct urb *data_in_urb;
struct urb *data_out_urb; struct urb *data_out_urb;
...@@ -163,7 +163,7 @@ static void uas_log_cmd_state(struct scsi_cmnd *cmnd, const char *caller) ...@@ -163,7 +163,7 @@ static void uas_log_cmd_state(struct scsi_cmnd *cmnd, const char *caller)
struct uas_cmd_info *ci = (void *)&cmnd->SCp; struct uas_cmd_info *ci = (void *)&cmnd->SCp;
scmd_printk(KERN_INFO, cmnd, "%s %p tag %d, inflight:" scmd_printk(KERN_INFO, cmnd, "%s %p tag %d, inflight:"
"%s%s%s%s%s%s%s%s%s%s%s\n", "%s%s%s%s%s%s%s%s%s%s%s%s\n",
caller, cmnd, cmnd->request->tag, caller, cmnd, cmnd->request->tag,
(ci->state & SUBMIT_STATUS_URB) ? " s-st" : "", (ci->state & SUBMIT_STATUS_URB) ? " s-st" : "",
(ci->state & ALLOC_DATA_IN_URB) ? " a-in" : "", (ci->state & ALLOC_DATA_IN_URB) ? " a-in" : "",
...@@ -175,7 +175,8 @@ static void uas_log_cmd_state(struct scsi_cmnd *cmnd, const char *caller) ...@@ -175,7 +175,8 @@ static void uas_log_cmd_state(struct scsi_cmnd *cmnd, const char *caller)
(ci->state & COMMAND_INFLIGHT) ? " CMD" : "", (ci->state & COMMAND_INFLIGHT) ? " CMD" : "",
(ci->state & DATA_IN_URB_INFLIGHT) ? " IN" : "", (ci->state & DATA_IN_URB_INFLIGHT) ? " IN" : "",
(ci->state & DATA_OUT_URB_INFLIGHT) ? " OUT" : "", (ci->state & DATA_OUT_URB_INFLIGHT) ? " OUT" : "",
(ci->state & COMMAND_COMPLETED) ? " done" : ""); (ci->state & COMMAND_COMPLETED) ? " done" : "",
(ci->state & COMMAND_ABORTED) ? " abort" : "");
} }
static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller) static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller)
...@@ -302,7 +303,7 @@ static void uas_data_cmplt(struct urb *urb) ...@@ -302,7 +303,7 @@ static void uas_data_cmplt(struct urb *urb)
} else { } else {
sdb->resid = sdb->length - urb->actual_length; sdb->resid = sdb->length - urb->actual_length;
} }
if (cmdinfo->aborted) { if (cmdinfo->state & COMMAND_ABORTED) {
return; return;
} }
uas_try_complete(cmnd, __func__); uas_try_complete(cmnd, __func__);
...@@ -570,7 +571,6 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd, ...@@ -570,7 +571,6 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
cmdinfo->state = SUBMIT_STATUS_URB | cmdinfo->state = SUBMIT_STATUS_URB |
ALLOC_CMD_URB | SUBMIT_CMD_URB; ALLOC_CMD_URB | SUBMIT_CMD_URB;
cmdinfo->aborted = 0;
switch (cmnd->sc_data_direction) { switch (cmnd->sc_data_direction) {
case DMA_FROM_DEVICE: case DMA_FROM_DEVICE:
...@@ -652,7 +652,7 @@ static int uas_eh_abort_handler(struct scsi_cmnd *cmnd) ...@@ -652,7 +652,7 @@ static int uas_eh_abort_handler(struct scsi_cmnd *cmnd)
int ret; int ret;
uas_log_cmd_state(cmnd, __func__); uas_log_cmd_state(cmnd, __func__);
cmdinfo->aborted = 1; cmdinfo->state |= COMMAND_ABORTED;
ret = uas_eh_task_mgmt(cmnd, "ABORT TASK", TMF_ABORT_TASK); ret = uas_eh_task_mgmt(cmnd, "ABORT TASK", TMF_ABORT_TASK);
if (cmdinfo->state & DATA_IN_URB_INFLIGHT) if (cmdinfo->state & DATA_IN_URB_INFLIGHT)
usb_kill_urb(cmdinfo->data_in_urb); usb_kill_urb(cmdinfo->data_in_urb);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册