lkml.org 
[lkml]   [2017]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/19] scsi: hisi_sas: add status and command buffer for internal abort
    Date
    From: Xiang Chen <chenxiang66@hisilicon.com>

    For v3 hw, internal abort function required status and command buffer
    to be set, so add necessary code for this.

    Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
    Signed-off-by: John Garry <john.garry@huawei.com>
    ---
    drivers/scsi/hisi_sas/hisi_sas_main.c | 14 +++++++++++++-
    1 file changed, 13 insertions(+), 1 deletion(-)

    diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
    index 86868ec..7e642c8 100644
    --- a/drivers/scsi/hisi_sas/hisi_sas_main.c
    +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
    @@ -1363,12 +1363,21 @@ static int hisi_sas_query_task(struct sas_task *task)
    slot->port = port;
    task->lldd_task = slot;

    + slot->buf = dma_pool_alloc(hisi_hba->buffer_pool,
    + GFP_ATOMIC, &slot->buf_dma);
    + if (!slot->buf) {
    + rc = -ENOMEM;
    + goto err_out_tag;
    + }
    +
    memset(slot->cmd_hdr, 0, sizeof(struct hisi_sas_cmd_hdr));
    + memset(hisi_sas_cmd_hdr_addr_mem(slot), 0, HISI_SAS_COMMAND_TABLE_SZ);
    + memset(hisi_sas_status_buf_addr_mem(slot), 0, HISI_SAS_STATUS_BUF_SZ);

    rc = hisi_sas_task_prep_abort(hisi_hba, slot, device_id,
    abort_flag, task_tag);
    if (rc)
    - goto err_out_tag;
    + goto err_out_buf;


    list_add_tail(&slot->entry, &sas_dev->list);
    @@ -1386,6 +1395,9 @@ static int hisi_sas_query_task(struct sas_task *task)

    return 0;

    +err_out_buf:
    + dma_pool_free(hisi_hba->buffer_pool, slot->buf,
    + slot->buf_dma);
    err_out_tag:
    spin_lock_irqsave(&hisi_hba->lock, flags);
    hisi_sas_slot_index_free(hisi_hba, slot_idx);
    --
    1.9.1
    \
     
     \ /
      Last update: 2017-08-10 17:50    [W:4.295 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site