]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - mm/ksm.c
tunnels: do not assume mac header is set in skb_tunnel_check_pmtu()
[mirror_ubuntu-jammy-kernel.git] / mm / ksm.c
index a5716fdec1aac0ac9bf6f2305d5369887e671e39..7d5ec01385c77b5e375d8c3eeb1676d32e52ca40 100644 (file)
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -2415,9 +2415,14 @@ static int ksm_scan_thread(void *nothing)
 
                if (ksmd_should_run()) {
                        sleep_ms = READ_ONCE(ksm_thread_sleep_millisecs);
-                       wait_event_interruptible_timeout(ksm_iter_wait,
-                               sleep_ms != READ_ONCE(ksm_thread_sleep_millisecs),
-                               msecs_to_jiffies(sleep_ms));
+                       if (sleep_ms >= 1000)
+                               wait_event_interruptible_timeout(ksm_iter_wait,
+                                       sleep_ms != READ_ONCE(ksm_thread_sleep_millisecs),
+                                       msecs_to_jiffies(round_jiffies_relative(sleep_ms)));
+                       else
+                               wait_event_interruptible_timeout(ksm_iter_wait,
+                                       sleep_ms != READ_ONCE(ksm_thread_sleep_millisecs),
+                                       msecs_to_jiffies(sleep_ms));
                } else {
                        wait_event_freezable(ksm_thread_wait,
                                ksmd_should_run() || kthread_should_stop());