OSDN Git Service

scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update()
authorDamien Le Moal <damien.lemoal@opensource.wdc.com>
Sun, 20 Feb 2022 03:17:48 +0000 (12:17 +0900)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 23 Feb 2022 02:31:18 +0000 (21:31 -0500)
All fields of the kek_mgmt_req structure have the type __le32. So make sure
to use cpu_to_le32() to initialize them. This suppresses the sparse
warning:

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

Link: https://lore.kernel.org/r/20220220031810.738362-10-damien.lemoal@opensource.wdc.com
Fixes: f5860992db55 ("[SCSI] pm80xx: Added SPCv/ve specific hardware functionalities and relevant changes in common files")
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>
drivers/scsi/pm8001/pm80xx_hwi.c

index e6fb891..b06d5de 100644 (file)
@@ -1405,12 +1405,13 @@ static int pm80xx_encrypt_update(struct pm8001_hba_info *pm8001_ha)
        /* Currently only one key is used. New KEK index is 1.
         * Current KEK index is 1. Store KEK to NVRAM is 1.
         */
-       payload.new_curidx_ksop = ((1 << 24) | (1 << 16) | (1 << 8) |
-                                       KEK_MGMT_SUBOP_KEYCARDUPDATE);
+       payload.new_curidx_ksop =
+               cpu_to_le32(((1 << 24) | (1 << 16) | (1 << 8) |
+                            KEK_MGMT_SUBOP_KEYCARDUPDATE));
 
        pm8001_dbg(pm8001_ha, DEV,
                   "Saving Encryption info to flash. payload 0x%x\n",
-                  payload.new_curidx_ksop);
+                  le32_to_cpu(payload.new_curidx_ksop));
 
        rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload,
                        sizeof(payload), 0);