i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
-       i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
-
        if (job->user_fence.used)
                i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
                                                job->user_fence.value,
                                                dw, i);
 
+       i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
+
        i = emit_user_interrupt(dw, i);
 
        xe_gt_assert(gt, i <= MAX_JOB_SIZE_DW);
 
        i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
-       i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
-
        if (job->user_fence.used)
                i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
                                                job->user_fence.value,
                                                dw, i);
 
+       i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
+
        i = emit_user_interrupt(dw, i);
 
        xe_gt_assert(gt, i <= MAX_JOB_SIZE_DW);