1. 21 Jun, 2016 9 commits
  2. 20 Jun, 2016 11 commits
  3. 19 Jun, 2016 2 commits
  4. 18 Jun, 2016 1 commit
    • Chris Wilson's avatar
      drm: Protect drm_connector_register_all() under DRIVER_MODESET · bee7fb15
      Chris Wilson authored
      0-day kbuilder found
      
      [    1.360244] BUG: unable to handle kernel NULL pointer dereference at   (null)
      [    1.360972] IP: [<c14db9ad>] mutex_lock_nested+0x11f/0x2c3
      [    1.361512] *pde = 00000000
      [    1.361827] Oops: 0002 [#1]
      [    1.362123] Modules linked in:
      [    1.362451] CPU: 0 PID: 1 Comm: swapper Not tainted 4.7.0-rc2-00564-ge28cd4d0 #1
      [    1.363202] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Debian-1.8.2-1 04/01/2014
      [    1.364105] task: c03d0000 ti: d28da000 task.ti: d28da000
      [    1.364636] EIP: 0060:[<c14db9ad>] EFLAGS: 00210096 CPU: 0
      [    1.365215] EIP is at mutex_lock_nested+0x11f/0x2c3
      [    1.365703] EAX: 00000000 EBX: d39e8ae8 ECX: d39e8b14 EDX: c1361cf9
      [    1.366351] ESI: c03d0000 EDI: d28dbed0 EBP: d28dbeec ESP: d28dbec0
      [    1.367010]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
      [    1.367534] CR0: 80050033 CR2: 00000000 CR3: 019a9000 CR4: 00000690
      [    1.368152] Stack:
      [    1.368356]  d39e8b14 d39e8b24 c1361cf9 00200246 d39e8b14 00000000 11111111 d28dbed0
      [    1.369235]  d39e8800 d39e8ae8 00000000 d28dbf08 c1361cf9 d28dbf0c c10b25be d39e8800
      [    1.370087]  00000000 00000000 d28dbf1c c135e37d fffffff4 ffffffff 00000000 d28dbf28
      [    1.371012] Call Trace:
      [    1.371272]  [<c1361cf9>] ? drm_connector_register_all+0x1a/0x92
      [    1.371847]  [<c1361cf9>] drm_connector_register_all+0x1a/0x92
      [    1.372421]  [<c10b25be>] ? kstrdup+0x25/0x3a
      [    1.372863]  [<c135e37d>] drm_dev_register+0x59/0x99
      [    1.373358]  [<c195ea3e>] vgem_init+0x34/0x49
      [    1.373770]  [<c195ea0a>] ? mipi_dsi_bus_init+0xf/0xf
      [    1.374257]  [<c100048f>] do_one_initcall+0x7c/0xfd
      [    1.374754]  [<c104b409>] ? parse_args+0x1fd/0x314
      [    1.375259]  [<c1939c10>] ? kernel_init_freeable+0xd0/0x179
      [    1.375837]  [<c1939c2c>] kernel_init_freeable+0xec/0x179
      [    1.376371]  [<c14d66ea>] kernel_init+0x8/0xcb
      [    1.376806]  [<c14debce>] ret_from_kernel_thread+0xe/0x30
      [    1.377322]  [<c14d66e2>] ? rest_init+0x10e/0x10e
      [    1.377754] Code: 89 fa e8 71 c5 b7 ff 8b 4e 04 89 fa 89 d8 e8 8e c6 b7 ff 8d 43 2c 89 45 d4 8b 43 30 8d 4b 2c 89 45 e8 89 7b 30 89 4d e4 8b 55 dc <89> 38 8d 43 3c 89 75 ec e8 c9 dd b7 ff eb 0c 31 c0 87 03 48
      +75
      [    1.380442] EIP: [<c14db9ad>] mutex_lock_nested+0x11f/0x2c3 SS:ESP 0068:d28dbec0
      [    1.381174] CR2: 0000000000000000
      
      when loading the non-modesetting vGEM module. To prevent use of the
      uninitialised dev->mode_config from drm_dev_register() we move the
      drm_connector_register_all() under a DRIVER_MODESET guard. Longer term,
      we probably want to initialise the embedded dev->mode_config automatically
      from drm_dev_init() for all DRIVER_MODESET drivers.
      
      v2: Also protect drm_dev_unregister.
      
      Fixes: e28cd4d0 ("drm: Automatically register/unregister all connectors")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Emil Velikov <emil.l.velikov@gmail.com>
      Cc: dri-devel@lists.freedesktop.org
      Reviewed-by: default avatarEmil Velikov <emil.l.velikov@gmail.com>
      Testcase: igt/vgem_reload_basic
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1466257601-5656-1-git-send-email-chris@chris-wilson.co.uk
      bee7fb15
  5. 17 Jun, 2016 9 commits
  6. 16 Jun, 2016 7 commits
  7. 15 Jun, 2016 1 commit
    • Dave Airlie's avatar
      Merge tag 'topic/drm-misc-2016-06-15' of git://anongit.freedesktop.org/drm-intel into drm-next · a0877f52
      Dave Airlie authored
      - best_encoder cleanup from Boris.
      - drm_simple_display_pipe helpers from Noralf. Looks really neat imo, and
        there's 2-3 in-flight drivers which look like they could/should use it.
        Anyway, with this we have now helpers and everything in place to write
        drivers for simple hw with fewer complexity in the driver than what
        fbdev would need. That was the last complaint I've heard from embedded
        folks after we made atomic happen. Mission accomplished!
      - nonblocking commit helpers for atomic, plus a bunch of driver patches
        for that.
      - Prep patch from Laurent for cleaned up pixel format functions.
      - More of Gustavo's cleanup for drm vblank functions.
      - and a few oddball things in between
      
      Plus the merge of docs-next to prep the docbook->sphinx conversion as
      discussed. Jon cc'ed as fyi.
      
      * tag 'topic/drm-misc-2016-06-15' of git://anongit.freedesktop.org/drm-intel: (108 commits)
        drm/atomic-helpers: Clear up cleanup_done a bit
        drm/atomic-helpers: Stall on the right commit
        drm/vmwgfx: use *_32_bits() macros
        drm/virtio: Don't reinvent a flipping wheel
        drm/i915: Fix missing unlock on error in i915_ppgtt_info()
        drm/gma500: use drm_crtc_vblank_{on,off}()
        drm/radeon: use crtc directly in drm_crtc_vblank_put()
        drm/amdgpu: use crtc directly in drm_crtc_vblank_put()
        drm/radeon: use drm_crtc_vblank_{on,off}()
        drm/amdgpu: use drm_crtc_vblank_{on,off}()
        drm: make drm_vblank_{get,put}() static
        drm: remove legacy drm_arm_vblank_event()
        drm: remove legacy drm_send_vblank_event()
        drm/nouveau: replace legacy vblank helpers
        drm/prime: fix error path deadlock fail
        drm/dsi: Add uevent callback
        drm: fb: cma: fix memory leak
        drm: i915: Rely on the default ->best_encoder() behavior where appropriate
        drm: Add helper for simple display pipeline
        drm/bridge: dw-hdmi: Use drm_atomic_helper_best_encoder()
        ...
      a0877f52