···5454 * 0x00 inactive5555 * 0x01 enqueued into rbtree5656 * 0x02 callback function running5757+ * 0x04 timer is migrated to another cpu5758 *5859 * Special cases:5960 * 0x03 callback function running and enqueued6061 * (was requeued on another CPU)6161- * 0x09 timer was migrated on CPU hotunplug6262+ * 0x05 timer was migrated on CPU hotunplug6363+ *6264 * The "callback function running and enqueued" status is only possible on6365 * SMP. It happens for example when a posix timer expired and the callback6466 * queued a signal. Between dropping the lock which protects the posix timer···6967 * as otherwise the timer could be removed before the softirq code finishes the7068 * the handling of the timer.7169 *7272- * The HRTIMER_STATE_ENQUEUED bit is always or'ed to the current state to7373- * preserve the HRTIMER_STATE_CALLBACK bit in the above scenario.7070+ * The HRTIMER_STATE_ENQUEUED bit is always or'ed to the current state7171+ * to preserve the HRTIMER_STATE_CALLBACK in the above scenario. This7272+ * also affects HRTIMER_STATE_MIGRATE where the preservation is not7373+ * necessary. HRTIMER_STATE_MIGRATE is cleared after the timer is7474+ * enqueued on the new cpu.7475 *7576 * All state transitions are protected by cpu_base->lock.7677 */···381376extern ktime_t hrtimer_get_next_event(void);382377383378/*384384- * A timer is active, when it is enqueued into the rbtree or the callback385385- * function is running.379379+ * A timer is active, when it is enqueued into the rbtree or the380380+ * callback function is running or it's in the state of being migrated381381+ * to another cpu.386382 */387383static inline int hrtimer_active(const struct hrtimer *timer)388384{