]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi: mpt3sas: Fix incorrect system timestamp
authorSreekanth Reddy <sreekanth.reddy@broadcom.com>
Wed, 17 Nov 2021 12:32:15 +0000 (18:02 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 19 Nov 2021 03:44:11 +0000 (22:44 -0500)
For updating the IOC firmware's timestamp with system timestamp, the driver
issues the Mpi26IoUnitControlRequest message. While framing the
Mpi26IoUnitControlRequest, the driver should copy the lower 32 bits of the
current timestamp into IOCParameterValue field and the higher 32 bits into
Reserved7 field.

Link: https://lore.kernel.org/r/20211117123215.25487-1-sreekanth.reddy@broadcom.com
Fixes: f98790c00375 ("scsi: mpt3sas: Sync time periodically between driver and firmware")
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.c

index 27eb652b564f54117e02d257d92ab6111c9412d5..81dab9b82f79f98e8b14229647b3b70f6a2a983d 100644 (file)
@@ -639,8 +639,8 @@ static void _base_sync_drv_fw_timestamp(struct MPT3SAS_ADAPTER *ioc)
        mpi_request->IOCParameter = MPI26_SET_IOC_PARAMETER_SYNC_TIMESTAMP;
        current_time = ktime_get_real();
        TimeStamp = ktime_to_ms(current_time);
-       mpi_request->Reserved7 = cpu_to_le32(TimeStamp & 0xFFFFFFFF);
-       mpi_request->IOCParameterValue = cpu_to_le32(TimeStamp >> 32);
+       mpi_request->Reserved7 = cpu_to_le32(TimeStamp >> 32);
+       mpi_request->IOCParameterValue = cpu_to_le32(TimeStamp & 0xFFFFFFFF);
        init_completion(&ioc->scsih_cmds.done);
        ioc->put_smid_default(ioc, smid);
        dinitprintk(ioc, ioc_info(ioc,