IB/mlx4: Use boottime
authorAbhilash Jindal <klock.android@gmail.com>
Sun, 31 Jan 2016 18:53:31 +0000 (13:53 -0500)
committerDoug Ledford <dledford@redhat.com>
Mon, 29 Feb 2016 22:11:40 +0000 (17:11 -0500)
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: Abhilash Jindal <klock.android@gmail.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx4/alias_GUID.c

index 21cb41a60fe8096c3392e9b886252ae37307d9a4..c74ef2620b859b800ca673e6b3246fa68c831f4f 100644 (file)
@@ -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 @@ next_entry:
                         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);