diff options
Diffstat (limited to 'drivers/net/wireguard/selftest/ratelimiter.c')
| -rw-r--r-- | drivers/net/wireguard/selftest/ratelimiter.c | 25 | 
1 files changed, 10 insertions, 15 deletions
| diff --git a/drivers/net/wireguard/selftest/ratelimiter.c b/drivers/net/wireguard/selftest/ratelimiter.c index ba87d294604f..d4bb40a695ab 100644 --- a/drivers/net/wireguard/selftest/ratelimiter.c +++ b/drivers/net/wireguard/selftest/ratelimiter.c @@ -6,29 +6,28 @@  #ifdef DEBUG  #include <linux/jiffies.h> -#include <linux/hrtimer.h>  static const struct {  	bool result; -	u64 nsec_to_sleep_before; +	unsigned int msec_to_sleep_before;  } expected_results[] __initconst = {  	[0 ... PACKETS_BURSTABLE - 1] = { true, 0 },  	[PACKETS_BURSTABLE] = { false, 0 }, -	[PACKETS_BURSTABLE + 1] = { true, NSEC_PER_SEC / PACKETS_PER_SECOND }, +	[PACKETS_BURSTABLE + 1] = { true, MSEC_PER_SEC / PACKETS_PER_SECOND },  	[PACKETS_BURSTABLE + 2] = { false, 0 }, -	[PACKETS_BURSTABLE + 3] = { true, (NSEC_PER_SEC / PACKETS_PER_SECOND) * 2 }, +	[PACKETS_BURSTABLE + 3] = { true, (MSEC_PER_SEC / PACKETS_PER_SECOND) * 2 },  	[PACKETS_BURSTABLE + 4] = { true, 0 },  	[PACKETS_BURSTABLE + 5] = { false, 0 }  };  static __init unsigned int maximum_jiffies_at_index(int index)  { -	u64 total_nsecs = 2 * NSEC_PER_SEC / PACKETS_PER_SECOND / 3; +	unsigned int total_msecs = 2 * MSEC_PER_SEC / PACKETS_PER_SECOND / 3;  	int i;  	for (i = 0; i <= index; ++i) -		total_nsecs += expected_results[i].nsec_to_sleep_before; -	return nsecs_to_jiffies(total_nsecs); +		total_msecs += expected_results[i].msec_to_sleep_before; +	return msecs_to_jiffies(total_msecs);  }  static __init int timings_test(struct sk_buff *skb4, struct iphdr *hdr4, @@ -43,12 +42,8 @@ static __init int timings_test(struct sk_buff *skb4, struct iphdr *hdr4,  	loop_start_time = jiffies;  	for (i = 0; i < ARRAY_SIZE(expected_results); ++i) { -		if (expected_results[i].nsec_to_sleep_before) { -			ktime_t timeout = ktime_add(ktime_add_ns(ktime_get_coarse_boottime(), TICK_NSEC * 4 / 3), -						    ns_to_ktime(expected_results[i].nsec_to_sleep_before)); -			set_current_state(TASK_UNINTERRUPTIBLE); -			schedule_hrtimeout_range_clock(&timeout, 0, HRTIMER_MODE_ABS, CLOCK_BOOTTIME); -		} +		if (expected_results[i].msec_to_sleep_before) +			msleep(expected_results[i].msec_to_sleep_before);  		if (time_is_before_jiffies(loop_start_time +  					   maximum_jiffies_at_index(i))) @@ -132,7 +127,7 @@ bool __init wg_ratelimiter_selftest(void)  	if (IS_ENABLED(CONFIG_KASAN) || IS_ENABLED(CONFIG_UBSAN))  		return true; -	BUILD_BUG_ON(NSEC_PER_SEC % PACKETS_PER_SECOND != 0); +	BUILD_BUG_ON(MSEC_PER_SEC % PACKETS_PER_SECOND != 0);  	if (wg_ratelimiter_init())  		goto out; @@ -172,7 +167,7 @@ bool __init wg_ratelimiter_selftest(void)  	++test;  #endif -	for (trials = TRIALS_BEFORE_GIVING_UP;;) { +	for (trials = TRIALS_BEFORE_GIVING_UP; IS_ENABLED(DEBUG_RATELIMITER_TIMINGS);) {  		int test_count = 0, ret;  		ret = timings_test(skb4, hdr4, skb6, hdr6, &test_count); | 
