• Jani Nikula's avatar
    drm/irq: remove check on dev->dev_private · e62bf83a
    Jani Nikula authored
    There is no real reason to require drivers to set and use
    dev->dev_private. Indeed, the current recommendation, as documented in
    drm_device.h, is to embed struct drm_device in the per-device struct
    instead of using dev_private.
    
    Remove the requirement for dev_private to have been set to indicate
    driver initialization.
    
    For background, quoting Daniel Vetter:
    
    Now there might be some hilarious races this papers over, but:
    
    - Proper drivers should only call drm_dev_register once everything is
      set up, including this stuff here. No race possible with anything else
      really.
    
    - Slightly more wobbly drivers, including the legacy ones, all use
      drm_global_mutex. This was the former BKL, which means that it was
      impossible for soeone to go through the load/unload/reload (between
      lastclose and firstopen) paths and also run the ioctl. But the ioctl
      had to be made unlocked because blocking there killed X:
    
    	 commit 8f4ff2b0
    	 Author: Ilija Hadzic <ihadzic@research.bell-labs.com>
    	 Date:   Mon Oct 31 17:46:18 2011 -0400
    
    	     drm: do not sleep on vblank while holding a mutex
    
      The even more legacy DRM_CONTROL ioctl stayed fully locked. But the
      file open/close paths are still fully locked, and that's the only
      place legacy drivers should call drm_irq_install/uninstall, so should
      all still be fully ordered and protected and happy.
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200211144753.3175-1-jani.nikula@intel.com
    e62bf83a
drm_irq.c 7.94 KB