diff options
-rw-r--r-- | drivers/cpuidle/governors/menu.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c index 2efee27714a0..bd40b943b6db 100644 --- a/drivers/cpuidle/governors/menu.c +++ b/drivers/cpuidle/governors/menu.c | |||
@@ -407,8 +407,9 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev) | |||
407 | perfect_us = perfect_cstate_ms * 1000; | 407 | perfect_us = perfect_cstate_ms * 1000; |
408 | 408 | ||
409 | if (repeat && (4 * timer_us < data->expected_us)) { | 409 | if (repeat && (4 * timer_us < data->expected_us)) { |
410 | hrtimer_start(hrtmr, ns_to_ktime(1000 * timer_us), | 410 | RCU_NONIDLE(hrtimer_start(hrtmr, |
411 | HRTIMER_MODE_REL_PINNED); | 411 | ns_to_ktime(1000 * timer_us), |
412 | HRTIMER_MODE_REL_PINNED)); | ||
412 | /* In repeat case, menu hrtimer is started */ | 413 | /* In repeat case, menu hrtimer is started */ |
413 | per_cpu(hrtimer_status, cpu) = MENU_HRTIMER_REPEAT; | 414 | per_cpu(hrtimer_status, cpu) = MENU_HRTIMER_REPEAT; |
414 | } else if (perfect_us < data->expected_us) { | 415 | } else if (perfect_us < data->expected_us) { |
@@ -418,8 +419,9 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev) | |||
418 | * In that case, it makes sense to re-enter | 419 | * In that case, it makes sense to re-enter |
419 | * into a deeper C-state after some time. | 420 | * into a deeper C-state after some time. |
420 | */ | 421 | */ |
421 | hrtimer_start(hrtmr, ns_to_ktime(1000 * timer_us), | 422 | RCU_NONIDLE(hrtimer_start(hrtmr, |
422 | HRTIMER_MODE_REL_PINNED); | 423 | ns_to_ktime(1000 * timer_us), |
424 | HRTIMER_MODE_REL_PINNED)); | ||
423 | /* In general case, menu hrtimer is started */ | 425 | /* In general case, menu hrtimer is started */ |
424 | per_cpu(hrtimer_status, cpu) = MENU_HRTIMER_GENERAL; | 426 | per_cpu(hrtimer_status, cpu) = MENU_HRTIMER_GENERAL; |
425 | } | 427 | } |