lkml.org 
[lkml]   [2019]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 152/209] scsi: libsas: Check SMP PHY control function result
    Date
    From: John Garry <john.garry@huawei.com>

    [ Upstream commit 01929a65dfa13e18d89264ab1378854a91857e59 ]

    Currently the SMP PHY control execution result is checked, however the
    function result for the command is not.

    As such, we may be missing all potential errors, like SMP FUNCTION FAILED,
    INVALID REQUEST FRAME LENGTH, etc., meaning the PHY control request has
    failed.

    In some scenarios we need to ensure the function result is accepted, so add
    a check for this.

    Tested-by: Jian Luo <luojian5@huawei.com>
    Signed-off-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/libsas/sas_expander.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
    index 63c44eaabf69e..f77d72f01da91 100644
    --- a/drivers/scsi/libsas/sas_expander.c
    +++ b/drivers/scsi/libsas/sas_expander.c
    @@ -614,7 +614,14 @@ int sas_smp_phy_control(struct domain_device *dev, int phy_id,
    }

    res = smp_execute_task(dev, pc_req, PC_REQ_SIZE, pc_resp,PC_RESP_SIZE);
    -
    + if (res) {
    + pr_err("ex %016llx phy%02d PHY control failed: %d\n",
    + SAS_ADDR(dev->sas_addr), phy_id, res);
    + } else if (pc_resp[2] != SMP_RESP_FUNC_ACC) {
    + pr_err("ex %016llx phy%02d PHY control failed: function result 0x%x\n",
    + SAS_ADDR(dev->sas_addr), phy_id, pc_resp[2]);
    + res = pc_resp[2];
    + }
    kfree(pc_resp);
    kfree(pc_req);
    return res;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-12-04 19:21    [W:4.047 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site