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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:34 +0000 (14:23 +0200)
[ Upstream commit f8b12dfb476dad38ce755aaf5e2df46f06f1822e ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/pm8001/pm80xx_hwi.c

index 69789aa73fd1a8c426a32f8449bfb0caed4841ff..e606a9b1c3af68606f69926bf7f4688fd04ffcfc 100644 (file)
@@ -1406,12 +1406,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);