lkml.org 
[lkml]   [2016]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/8] hisi_sas: add internal abort to hisi_sas_abort_task()
    Date
    Execute an internal abort for executing an internal
    task abort. This is for case of command still being
    present in host when abort is executed.

    For a SATA internal abort, we set abort for all tasks
    associated with the device.

    Signed-off-by: John Garry <john.garry@huawei.com>
    ---
    drivers/scsi/hisi_sas/hisi_sas_main.c | 15 ++++++++++-----
    1 file changed, 10 insertions(+), 5 deletions(-)

    diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
    index 9540953..6c82e07 100644
    --- a/drivers/scsi/hisi_sas/hisi_sas_main.c
    +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
    @@ -840,18 +840,23 @@ static int hisi_sas_abort_task(struct sas_task *task)
    }
    }

    + hisi_sas_internal_task_abort(hisi_hba, device, 0, tag);
    } else if (task->task_proto & SAS_PROTOCOL_SATA ||
    task->task_proto & SAS_PROTOCOL_STP) {
    if (task->dev->dev_type == SAS_SATA_DEV) {
    - struct hisi_slot_info *slot = task->lldd_task;
    + struct hisi_sas_slot *slot = task->lldd_task;
    + u32 tag = slot->idx;

    - dev_notice(dev, "abort task: hba=%p task=%p slot=%p\n",
    - hisi_hba, task, slot);
    - task->task_state_flags |= SAS_TASK_STATE_ABORTED;
    + hisi_sas_internal_task_abort(hisi_hba, device,
    + 1, tag);
    rc = TMF_RESP_FUNC_COMPLETE;
    - goto out;
    }
    + } else if (task->task_proto & SAS_PROTOCOL_SMP) {
    + /* SMP */
    + struct hisi_sas_slot *slot = task->lldd_task;
    + u32 tag = slot->idx;

    + hisi_sas_internal_task_abort(hisi_hba, device, 0, tag);
    }

    out:
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-08-10 23:21    [W:3.529 / U:0.332 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site