drm/irq: drm_control is a legacy ioctl, so pci devices only
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 3 Nov 2013 19:02:50 +0000 (20:02 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 22 Apr 2014 09:41:11 +0000 (11:41 +0200)
This just adds a correspdonding check, follow-up patches will exploit
this.

v2: Whitespace polish (Thierry)

Reviewed-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_irq.c

index e5920e7a439261475d7c94dc8e0a47ce7e4e9170..580f9ed2dca6a0a66998472f932e11fc662e2578 100644 (file)
@@ -386,22 +386,21 @@ int drm_control(struct drm_device *dev, void *data,
         * this used to be a separate function in drm_dma.h
         */
 
+       if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
+               return 0;
+       if (drm_core_check_feature(dev, DRIVER_MODESET))
+               return 0;
+       /* UMS was only ever support on pci devices. */
+       if (WARN_ON(!dev->pdev))
+               return -EINVAL;
 
        switch (ctl->func) {
        case DRM_INST_HANDLER:
-               if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-                       return 0;
-               if (drm_core_check_feature(dev, DRIVER_MODESET))
-                       return 0;
                if (dev->if_version < DRM_IF_VERSION(1, 2) &&
                    ctl->irq != drm_dev_to_irq(dev))
                        return -EINVAL;
                return drm_irq_install(dev);
        case DRM_UNINST_HANDLER:
-               if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
-                       return 0;
-               if (drm_core_check_feature(dev, DRIVER_MODESET))
-                       return 0;
                return drm_irq_uninstall(dev);
        default:
                return -EINVAL;
This page took 0.02615 seconds and 5 git commands to generate.