1. 19 9月, 2016 1 次提交
  2. 08 8月, 2016 1 次提交
  3. 22 6月, 2016 1 次提交
  4. 21 6月, 2016 1 次提交
  5. 16 6月, 2016 5 次提交
  6. 10 6月, 2016 1 次提交
  7. 04 6月, 2016 1 次提交
  8. 03 6月, 2016 1 次提交
  9. 27 4月, 2016 3 次提交
  10. 08 2月, 2016 3 次提交
  11. 26 1月, 2016 1 次提交
  12. 25 1月, 2016 2 次提交
  13. 04 12月, 2015 1 次提交
  14. 26 11月, 2015 2 次提交
  15. 22 5月, 2015 1 次提交
  16. 05 5月, 2015 1 次提交
    • D
      drm: simplify authentication management · 32e7b94a
      David Herrmann 提交于
      The magic auth tokens we have are a simple map from cyclic IDs to drm_file
      objects. Remove all the old bulk of code and replace it with a simple,
      direct IDR.
      
      The previous behavior is kept. Especially calling authmagic multiple times
      on the same magic results in EINVAL except on the first call. The only
      difference in behavior is that we never allocate IDs multiple times as
      long as a client has its FD open.
      
      v2:
       - Fix return code of GetMagic()
       - Use non-cyclic IDR allocator
       - fix off-by-one in "magic > INT_MAX" sanity check
      
      v3:
       - drop redundant "magic > INT_MAX" check
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      32e7b94a
  17. 21 1月, 2015 1 次提交
    • C
      drm: Make drm_read() more robust against multithreaded races · cdd1cf79
      Chris Wilson 提交于
      The current implementation of drm_read() faces a number of issues:
      
      1. Upon an error, it consumes the event which may lead to the client
      blocking.
      2. Upon an error, it forgets about events already copied
      3. If it fails to copy a single event with O_NONBLOCK it falls into a
      infinite loop of reporting EAGAIN.
      3. There is a race between multiple waiters and blocking reads of the
      events list.
      
      Here, we inline drm_dequeue_event() into drm_read() so that we can take
      the spinlock around the list walking and event copying, and importantly
      reorder the error handling to avoid the issues above.
      
      Cc: Takashi Iwai <tiwai@suse.de>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NTakashi Iwai <tiwai@suse.de>
      Testcase: igt/drm_read
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      cdd1cf79
  18. 04 12月, 2014 1 次提交
  19. 08 10月, 2014 1 次提交
  20. 03 10月, 2014 1 次提交
  21. 12 9月, 2014 3 次提交
  22. 10 9月, 2014 2 次提交
  23. 08 8月, 2014 1 次提交
    • D
      Revert "drm: drop redundant drm_file->is_master" · 7963e9db
      Dave Airlie 提交于
      This reverts commit 48ba8137.
      
      Thanks to Chris:
      "drm_file->is_master is not synomous with having drm_file->master ==
      drm_file->minor->master. This is because drm_file->master is the same
      for all drm_files of the same generation and so when there is a master,
      every drm_file believes itself to be the master. Confusion ensues and
      things go pear shaped when one file is closed and there is no master
      anymore."
      
      Conflicts:
      	drivers/gpu/drm/drm_drv.c
      	drivers/gpu/drm/drm_stub.c
      7963e9db
  24. 06 8月, 2014 2 次提交
  25. 05 8月, 2014 2 次提交
    • D
      drm: move module initialization to drm_stub.c · 1b7199fe
      David Herrmann 提交于
      Most of the new DRM management functions are nowadays in drm_stub.c. By
      moving the core module initialization to drm_stub.c we can make several
      global variables static and keep the stub-open helper local.
      
      The core files now look like this:
        drm_stub.c: Core management
         drm_drv.c: Ioctl dispatcher
       drm_ioctl.c: Actual ioctl backends
        drm_fops.c: Char-dev file-operations
      
      A follow-up patch will move what is left from drm_drv.c into drm_ioctl.c.
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      1b7199fe
    • D
      drm: don't de-authenticate clients on master-close · 3cb01a98
      David Herrmann 提交于
      If an active DRM-Master closes its device, we deauthenticate all clients
      on that master. However, if an inactive DRM-Master closes its device, we
      do nothing. This is quite inconsistent and breaks several scenarios:
      
       1) If this was used as security mechanism, it fails horribly if a master
          closes a device while VT switched away. Furthermore, none of the few
          drivers using ->master_*() callbacks seems to require it, anyway.
      
       2) If you spawn weston (or any other non-UMS compositor) in background
          while another compositor is active, both will get assigned to the
          same "drm_master" object. If the foreground compositor now exits, all
          clients of both the foreground AND background compositor will be
          de-authenticated leading to unexpected behavior.
      
      Stop this non-sense and keep clients authenticated. We don't do this when
      dropping DRM-Master (i.e., switching VTs) so don't do it on active-close
      either!
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      3cb01a98