Loading kernel/sched/core.c +12 −2 Original line number Diff line number Diff line Loading @@ -7176,14 +7176,24 @@ static inline int preempt_count_equals(int preempt_offset) return (nested == preempt_offset); } static int __might_sleep_init_called; int __init __might_sleep_init(void) { __might_sleep_init_called = 1; return 0; } early_initcall(__might_sleep_init); void __might_sleep(const char *file, int line, int preempt_offset) { static unsigned long prev_jiffy; /* ratelimiting */ rcu_sleep_check(); /* WARN_ON_ONCE() by default, no rate limit reqd. */ if ((preempt_count_equals(preempt_offset) && !irqs_disabled() && !is_idle_task(current)) || system_state != SYSTEM_RUNNING || oops_in_progress) !is_idle_task(current)) || oops_in_progress) return; if (system_state != SYSTEM_RUNNING && (!__might_sleep_init_called || system_state != SYSTEM_BOOTING)) return; if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy) return; Loading Loading
kernel/sched/core.c +12 −2 Original line number Diff line number Diff line Loading @@ -7176,14 +7176,24 @@ static inline int preempt_count_equals(int preempt_offset) return (nested == preempt_offset); } static int __might_sleep_init_called; int __init __might_sleep_init(void) { __might_sleep_init_called = 1; return 0; } early_initcall(__might_sleep_init); void __might_sleep(const char *file, int line, int preempt_offset) { static unsigned long prev_jiffy; /* ratelimiting */ rcu_sleep_check(); /* WARN_ON_ONCE() by default, no rate limit reqd. */ if ((preempt_count_equals(preempt_offset) && !irqs_disabled() && !is_idle_task(current)) || system_state != SYSTEM_RUNNING || oops_in_progress) !is_idle_task(current)) || oops_in_progress) return; if (system_state != SYSTEM_RUNNING && (!__might_sleep_init_called || system_state != SYSTEM_BOOTING)) return; if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy) return; Loading