lkml.org 
[lkml]   [2019]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 260/413] scsi: megaraid_sas: Fix calculation of target ID
    Date
    From: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>

    commit c8f96df5b8e633056b7ebf5d52a9d6fb1b156ce3 upstream.

    In megasas_get_target_prop(), driver is incorrectly calculating the target
    ID for devices with channel 1 and 3. Due to this, firmware will either
    fail the command (if there is no device with the target id sent from
    driver) or could return the properties for a target which was not
    intended. Devices could end up with the wrong queue depth due to this.

    Fix target id calculation for channel 1 and 3.

    Fixes: 96188a89cc6d ("scsi: megaraid_sas: NVME interface target prop added")
    Cc: stable@vger.kernel.org
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/scsi/megaraid/megaraid_sas_base.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/drivers/scsi/megaraid/megaraid_sas_base.c
    +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
    @@ -6155,7 +6155,8 @@ megasas_get_target_prop(struct megasas_i
    int ret;
    struct megasas_cmd *cmd;
    struct megasas_dcmd_frame *dcmd;
    - u16 targetId = (sdev->channel % 2) + sdev->id;
    + u16 targetId = ((sdev->channel % 2) * MEGASAS_MAX_DEV_PER_CHANNEL) +
    + sdev->id;

    cmd = megasas_get_cmd(instance);


    \
     
     \ /
      Last update: 2019-07-24 22:27    [W:4.024 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site