if (drm_core_check_feature(dev, DRIVER_MODESET)) {
                struct drm_crtc *crtc = drm_crtc_from_index(dev, pipe);
 
+               if (WARN_ON(!crtc))
+                       return 0;
+
                if (crtc->funcs->get_vblank_counter)
                        return crtc->funcs->get_vblank_counter(crtc);
        }
        if (drm_core_check_feature(dev, DRIVER_MODESET)) {
                struct drm_crtc *crtc = drm_crtc_from_index(dev, pipe);
 
+               if (WARN_ON(!crtc))
+                       return;
+
                if (crtc->funcs->disable_vblank) {
                        crtc->funcs->disable_vblank(crtc);
                        return;
        if (drm_core_check_feature(dev, DRIVER_MODESET)) {
                struct drm_crtc *crtc = drm_crtc_from_index(dev, pipe);
 
+               if (WARN_ON(!crtc))
+                       return 0;
+
                if (crtc->funcs->enable_vblank)
                        return crtc->funcs->enable_vblank(crtc);
        }