Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 571e09ee authored by Abhilash Jindal's avatar Abhilash Jindal Committed by Doug Ledford
Browse files

IB/mlx4: Use boottime



Wall time obtained from ktime_get_real_ns is susceptible to sudden jumps due to
user setting the time or due to NTP.  Boot time is constantly increasing time
better suited for comparing two timestamps.

Signed-off-by: default avatarAbhilash Jindal <klock.android@gmail.com>
Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent fc77dbd3
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ static void aliasguid_query_handler(int status,
	if (status) {
		pr_debug("(port: %d) failed: status = %d\n",
			 cb_ctx->port, status);
		rec->time_to_run = ktime_get_real_ns() + 1 * NSEC_PER_SEC;
		rec->time_to_run = ktime_get_boot_ns() + 1 * NSEC_PER_SEC;
		goto out;
	}

@@ -416,7 +416,7 @@ static void aliasguid_query_handler(int status,
			 be64_to_cpu((__force __be64)rec->guid_indexes),
			 be64_to_cpu((__force __be64)applied_guid_indexes),
			 be64_to_cpu((__force __be64)declined_guid_indexes));
		rec->time_to_run = ktime_get_real_ns() +
		rec->time_to_run = ktime_get_boot_ns() +
			resched_delay_sec * NSEC_PER_SEC;
	} else {
		rec->status = MLX4_GUID_INFO_STATUS_SET;
@@ -708,7 +708,7 @@ static int get_low_record_time_index(struct mlx4_ib_dev *dev, u8 port,
		}
	}
	if (resched_delay_sec) {
		u64 curr_time = ktime_get_real_ns();
		u64 curr_time = ktime_get_boot_ns();

		*resched_delay_sec = (low_record_time < curr_time) ? 0 :
			div_u64((low_record_time - curr_time), NSEC_PER_SEC);