> +#ifndef CONFIG_PREEMPT_RT Please don't add these silly inverted ifdefs. > +static inline void blk_mq_start_sync_run_hw_queue(void) > +{ > + preempt_disable(); > +} > +static inline void blk_mq_end_sync_run_hw_queue(void) > +{ > + preempt_enable(); > +} > +#else > +static inline void blk_mq_start_sync_run_hw_queue(void) > +{ > + migrate_disable(); > +} > +static inline void blk_mq_end_sync_run_hw_queue(void) > +{ > + migrate_enable(); > +} > +#endif But more importantly: why isn't migrate_disable/enable doing the right thing for !PREEMPT_RT to avoid this mess?