unsigned int reg, void *p_data, unsigned int bytes)
 {
        struct intel_gvt *gvt = vgpu->gvt;
-       struct intel_gvt_irq_ops *ops = gvt->irq.ops;
+       const struct intel_gvt_irq_ops *ops = gvt->irq.ops;
        u32 imr = *(u32 *)p_data;
 
        trace_write_ir(vgpu->id, "IMR", reg, imr, vgpu_vreg(vgpu, reg),
        unsigned int reg, void *p_data, unsigned int bytes)
 {
        struct intel_gvt *gvt = vgpu->gvt;
-       struct intel_gvt_irq_ops *ops = gvt->irq.ops;
+       const struct intel_gvt_irq_ops *ops = gvt->irq.ops;
        u32 ier = *(u32 *)p_data;
        u32 virtual_ier = vgpu_vreg(vgpu, reg);
 
 {
        struct intel_gvt *gvt = vgpu->gvt;
        struct drm_i915_private *i915 = gvt->gt->i915;
-       struct intel_gvt_irq_ops *ops = gvt->irq.ops;
+       const struct intel_gvt_irq_ops *ops = gvt->irq.ops;
        struct intel_gvt_irq_info *info;
        u32 ier = *(u32 *)p_data;
 
        SET_BIT_INFO(irq, 25, PCU_PCODE2DRIVER_MAILBOX, INTEL_GVT_IRQ_INFO_PCU);
 }
 
-static struct intel_gvt_irq_ops gen8_irq_ops = {
+static const struct intel_gvt_irq_ops gen8_irq_ops = {
        .init_irq = gen8_init_irq,
        .check_pending_irq = gen8_check_pending_irq,
 };
        struct intel_gvt *gvt = vgpu->gvt;
        struct intel_gvt_irq *irq = &gvt->irq;
        gvt_event_virt_handler_t handler;
-       struct intel_gvt_irq_ops *ops = gvt->irq.ops;
+       const struct intel_gvt_irq_ops *ops = gvt->irq.ops;
 
        handler = get_event_virt_handler(irq, event);
        drm_WARN_ON(&i915->drm, !handler);