diff mbox series

mpt3sas: Fix incorrect system timestamp showed in IOC FW

Message ID 20211117123215.25487-1-sreekanth.reddy@broadcom.com (mailing list archive)
State Accepted
Headers show
Series mpt3sas: Fix incorrect system timestamp showed in IOC FW | expand

Commit Message

Sreekanth Reddy Nov. 17, 2021, 12:32 p.m. UTC
For updating the IOC Fimrware's timestamp with
system timestamp, driver issues the Mpi26IoUnitControlRequest
message. While framing the Mpi26IoUnitControlRequest
driver should copy the current timestamp value's lower 32 bits in
IOCParameterValue field and higher 32 bits in Reserved7 field.

Fixes: f98790c00375("mpt3sas: Sync time periodically between driver and firmware")
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
---
 drivers/scsi/mpt3sas/mpt3sas_base.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Martin K. Petersen Nov. 19, 2021, 4:16 a.m. UTC | #1
On Wed, 17 Nov 2021 18:02:15 +0530, Sreekanth Reddy wrote:

> For updating the IOC Fimrware's timestamp with
> system timestamp, driver issues the Mpi26IoUnitControlRequest
> message. While framing the Mpi26IoUnitControlRequest
> driver should copy the current timestamp value's lower 32 bits in
> IOCParameterValue field and higher 32 bits in Reserved7 field.
> 
> 
> [...]

Applied to 5.16/scsi-fixes, thanks!

[1/1] mpt3sas: Fix incorrect system timestamp showed in IOC FW
      https://git.kernel.org/mkp/scsi/c/5ecae9f8c705
diff mbox series

Patch

diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
index 27eb652b564f..81dab9b82f79 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -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,