lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 312/599] scsi: pm8001: Fix le32 values handling in pm80xx_set_sas_protocol_timer_config()
    Date
    From: Damien Le Moal <damien.lemoal@opensource.wdc.com>

    [ Upstream commit ca374f5d92b8ae778f6a37dd3e7ed809bbf7a953 ]

    All fields of the SASProtocolTimerConfig structure have the __le32 type.
    As such, use cpu_to_le32() to initialize them. This change suppresses many
    sparse warnings:

    warning: incorrect type in assignment (different base types)
    expected restricted __le32 [addressable] [usertype] pageCode
    got int

    Note that the check to limit the value of the STP_IDLE_TMO field is removed
    as this field is initialized using the fixed (and small) value defined by
    the STP_IDLE_TIME macro.

    The pm8001_dbg() calls printing the values of the SASProtocolTimerConfig
    structure fileds are changed to use le32_to_cpu() to present the values in
    human readable form.

    Link: https://lore.kernel.org/r/20220220031810.738362-9-damien.lemoal@opensource.wdc.com
    Fixes: a6cb3d012b98 ("[SCSI] pm80xx: thermal, sas controller config and error handling update")
    Reviewed-by: Jack Wang <jinpu.wang@ionos.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/pm8001/pm80xx_hwi.c | 52 +++++++++++++++-----------------
    1 file changed, 25 insertions(+), 27 deletions(-)

    diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
    index 1b1033b4e310..f9736e02010d 100644
    --- a/drivers/scsi/pm8001/pm80xx_hwi.c
    +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
    @@ -1243,43 +1243,41 @@ pm80xx_set_sas_protocol_timer_config(struct pm8001_hba_info *pm8001_ha)
    circularQ = &pm8001_ha->inbnd_q_tbl[0];
    payload.tag = cpu_to_le32(tag);

    - SASConfigPage.pageCode = SAS_PROTOCOL_TIMER_CONFIG_PAGE;
    - SASConfigPage.MST_MSI = 3 << 15;
    - SASConfigPage.STP_SSP_MCT_TMO = (STP_MCT_TMO << 16) | SSP_MCT_TMO;
    - SASConfigPage.STP_FRM_TMO = (SAS_MAX_OPEN_TIME << 24) |
    - (SMP_MAX_CONN_TIMER << 16) | STP_FRM_TIMER;
    - SASConfigPage.STP_IDLE_TMO = STP_IDLE_TIME;
    -
    - if (SASConfigPage.STP_IDLE_TMO > 0x3FFFFFF)
    - SASConfigPage.STP_IDLE_TMO = 0x3FFFFFF;
    -
    -
    - SASConfigPage.OPNRJT_RTRY_INTVL = (SAS_MFD << 16) |
    - SAS_OPNRJT_RTRY_INTVL;
    - SASConfigPage.Data_Cmd_OPNRJT_RTRY_TMO = (SAS_DOPNRJT_RTRY_TMO << 16)
    - | SAS_COPNRJT_RTRY_TMO;
    - SASConfigPage.Data_Cmd_OPNRJT_RTRY_THR = (SAS_DOPNRJT_RTRY_THR << 16)
    - | SAS_COPNRJT_RTRY_THR;
    - SASConfigPage.MAX_AIP = SAS_MAX_AIP;
    + SASConfigPage.pageCode = cpu_to_le32(SAS_PROTOCOL_TIMER_CONFIG_PAGE);
    + SASConfigPage.MST_MSI = cpu_to_le32(3 << 15);
    + SASConfigPage.STP_SSP_MCT_TMO =
    + cpu_to_le32((STP_MCT_TMO << 16) | SSP_MCT_TMO);
    + SASConfigPage.STP_FRM_TMO =
    + cpu_to_le32((SAS_MAX_OPEN_TIME << 24) |
    + (SMP_MAX_CONN_TIMER << 16) | STP_FRM_TIMER);
    + SASConfigPage.STP_IDLE_TMO = cpu_to_le32(STP_IDLE_TIME);
    +
    + SASConfigPage.OPNRJT_RTRY_INTVL =
    + cpu_to_le32((SAS_MFD << 16) | SAS_OPNRJT_RTRY_INTVL);
    + SASConfigPage.Data_Cmd_OPNRJT_RTRY_TMO =
    + cpu_to_le32((SAS_DOPNRJT_RTRY_TMO << 16) | SAS_COPNRJT_RTRY_TMO);
    + SASConfigPage.Data_Cmd_OPNRJT_RTRY_THR =
    + cpu_to_le32((SAS_DOPNRJT_RTRY_THR << 16) | SAS_COPNRJT_RTRY_THR);
    + SASConfigPage.MAX_AIP = cpu_to_le32(SAS_MAX_AIP);

    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.pageCode 0x%08x\n",
    - SASConfigPage.pageCode);
    + le32_to_cpu(SASConfigPage.pageCode));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.MST_MSI 0x%08x\n",
    - SASConfigPage.MST_MSI);
    + le32_to_cpu(SASConfigPage.MST_MSI));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.STP_SSP_MCT_TMO 0x%08x\n",
    - SASConfigPage.STP_SSP_MCT_TMO);
    + le32_to_cpu(SASConfigPage.STP_SSP_MCT_TMO));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.STP_FRM_TMO 0x%08x\n",
    - SASConfigPage.STP_FRM_TMO);
    + le32_to_cpu(SASConfigPage.STP_FRM_TMO));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.STP_IDLE_TMO 0x%08x\n",
    - SASConfigPage.STP_IDLE_TMO);
    + le32_to_cpu(SASConfigPage.STP_IDLE_TMO));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.OPNRJT_RTRY_INTVL 0x%08x\n",
    - SASConfigPage.OPNRJT_RTRY_INTVL);
    + le32_to_cpu(SASConfigPage.OPNRJT_RTRY_INTVL));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.Data_Cmd_OPNRJT_RTRY_TMO 0x%08x\n",
    - SASConfigPage.Data_Cmd_OPNRJT_RTRY_TMO);
    + le32_to_cpu(SASConfigPage.Data_Cmd_OPNRJT_RTRY_TMO));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.Data_Cmd_OPNRJT_RTRY_THR 0x%08x\n",
    - SASConfigPage.Data_Cmd_OPNRJT_RTRY_THR);
    + le32_to_cpu(SASConfigPage.Data_Cmd_OPNRJT_RTRY_THR));
    pm8001_dbg(pm8001_ha, INIT, "SASConfigPage.MAX_AIP 0x%08x\n",
    - SASConfigPage.MAX_AIP);
    + le32_to_cpu(SASConfigPage.MAX_AIP));

    memcpy(&payload.cfg_pg, &SASConfigPage,
    sizeof(SASProtocolTimerConfig_t));
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-04-06 06:55    [W:2.222 / U:1.760 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site