scsi: mpt3sas: Fix incorrect system timestamp
[ Upstream commit 5ecae9f8c705fae85fe4d2ed9f1b9cddf91e88e9 ]
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: f98790c003 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8f13c5eddf
commit
b28df766a3
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user