* hrtimer_{start/cancel} functions call into tracing,
         * calls to these functions must be bound within RCU_NONIDLE.
         */
-       RCU_NONIDLE({
+       RCU_NONIDLE(
+               {
                        bc_moved = hrtimer_try_to_cancel(&bctimer) >= 0;
-                       if (bc_moved)
+                       if (bc_moved) {
                                hrtimer_start(&bctimer, expires,
-                                             HRTIMER_MODE_ABS_PINNED);});
+                                             HRTIMER_MODE_ABS_PINNED_HARD);
+                       }
+               }
+       );
+
        if (bc_moved) {
                /* Bind the "device" to the cpu */
                bc->bound_on = smp_processor_id();
 
 void tick_setup_hrtimer_broadcast(void)
 {
-       hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
+       hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
        bctimer.function = bc_handler;
        clockevents_register_device(&ce_broadcast_hrtimer);
 }
 
        /* Forward the time to expire in the future */
        hrtimer_forward(&ts->sched_timer, now, tick_period);
 
-       if (ts->nohz_mode == NOHZ_MODE_HIGHRES)
-               hrtimer_start_expires(&ts->sched_timer, HRTIMER_MODE_ABS_PINNED);
-       else
+       if (ts->nohz_mode == NOHZ_MODE_HIGHRES) {
+               hrtimer_start_expires(&ts->sched_timer,
+                                     HRTIMER_MODE_ABS_PINNED_HARD);
+       } else {
                tick_program_event(hrtimer_get_expires(&ts->sched_timer), 1);
+       }
 
        /*
         * Reset to make sure next tick stop doesn't get fooled by past
        }
 
        if (ts->nohz_mode == NOHZ_MODE_HIGHRES) {
-               hrtimer_start(&ts->sched_timer, tick, HRTIMER_MODE_ABS_PINNED);
+               hrtimer_start(&ts->sched_timer, tick,
+                             HRTIMER_MODE_ABS_PINNED_HARD);
        } else {
                hrtimer_set_expires(&ts->sched_timer, tick);
                tick_program_event(tick, 1);
        /*
         * Emulate tick processing via per-CPU hrtimers:
         */
-       hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
+       hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
        ts->sched_timer.function = tick_sched_timer;
 
        /* Get the next period (per-CPU) */
        }
 
        hrtimer_forward(&ts->sched_timer, now, tick_period);
-       hrtimer_start_expires(&ts->sched_timer, HRTIMER_MODE_ABS_PINNED);
+       hrtimer_start_expires(&ts->sched_timer, HRTIMER_MODE_ABS_PINNED_HARD);
        tick_nohz_activate(ts, NOHZ_MODE_HIGHRES);
 }
 #endif /* HIGH_RES_TIMERS */