1. 24 Aug, 2016 4 commits
    • Chris Wilson's avatar
      drm/i915/dvo: Remove dangling call to drm_encoder_cleanup() · 8f76aa0e
      Chris Wilson authored
      If we hit the error path, we have never called drm_encoder_init() and so
      have nothing to cleanup. Doing so hits a null dereference:
      
      [   10.066261] BUG: unable to handle kernel NULL pointer dereference at 00000104
      [   10.066273] IP: [<c16054b4>] mutex_lock+0xa/0x15
      [   10.066287] *pde = 00000000
      [   10.066295] Oops: 0002 [#1]
      [   10.066302] Modules linked in: i915(+) video i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm iTCO_wdt iTCO_vendor_support ppdev evdev snd_intel8x0 snd_ac97_codec ac97_bus psmouse snd_pcm snd_timer snd pcspkr uhci_hcd ehci_pci soundcore sr_mod ehci_hcd serio_raw i2c_i801 usbcore i2c_smbus cdrom lpc_ich mfd_core rng_core e100 mii floppy parport_pc parport acpi_cpufreq button processor usb_common eeprom lm85 hwmon_vid autofs4
      [   10.066378] CPU: 0 PID: 132 Comm: systemd-udevd Not tainted 4.8.0-rc3-00013-gef0e1ea8 #34
      [   10.066389] Hardware name: MicroLink                               /D865GLC                        , BIOS BF86510A.86A.0077.P25.0508040031 08/04/2005
      [   10.066401] task: f62db800 task.stack: f5970000
      [   10.066409] EIP: 0060:[<c16054b4>] EFLAGS: 00010286 CPU: 0
      [   10.066417] EIP is at mutex_lock+0xa/0x15
      [   10.066424] EAX: 00000104 EBX: 00000104 ECX: 00000000 EDX: 80000000
      [   10.066432] ESI: 00000000 EDI: 00000104 EBP: f5be8000 ESP: f5971b58
      [   10.066439]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
      [   10.066446] CR0: 80050033 CR2: 00000104 CR3: 35945000 CR4: 000006d0
      [   10.066453] Stack:
      [   10.066459]  f503d740 f824dddf 00000000 f61170c0 f61170c0 f82371ae f850f40e 00000001
      [   10.066476]  f61170c0 f5971bcc f5be8000 f9c2d401 00000001 f8236fcc 00000001 00000000
      [   10.066491]  f5144014 f5be8104 00000008 f9c5267c 00000007 f61170c0 f5144400 f9c4ff00
      [   10.066507] Call Trace:
      [   10.066526]  [<f824dddf>] ? drm_modeset_lock_all+0x27/0xb3 [drm]
      [   10.066545]  [<f82371ae>] ? drm_encoder_cleanup+0x1a/0x132 [drm]
      [   10.066559]  [<f850f40e>] ? drm_atomic_helper_connector_reset+0x3f/0x5c [drm_kms_helper]
      [   10.066644]  [<f9c2d401>] ? intel_dvo_init+0x569/0x788 [i915]
      [   10.066663]  [<f8236fcc>] ? drm_encoder_init+0x43/0x20b [drm]
      [   10.066734]  [<f9bf1fce>] ? intel_modeset_init+0x1436/0x17dd [i915]
      [   10.066791]  [<f9b37636>] ? i915_driver_load+0x85a/0x15d3 [i915]
      [   10.066846]  [<f9b3603d>] ? i915_driver_open+0x5/0x5 [i915]
      [   10.066857]  [<c14af4d0>] ? firmware_map_add_entry.part.2+0xc/0xc
      [   10.066868]  [<c1343daf>] ? pci_device_probe+0x8e/0x11c
      [   10.066878]  [<c140cec8>] ? driver_probe_device+0x1db/0x62e
      [   10.066888]  [<c120c010>] ? kernfs_new_node+0x29/0x9c
      [   10.066897]  [<c13438e0>] ? pci_match_device+0xd9/0x161
      [   10.066905]  [<c120c48b>] ? kernfs_create_dir_ns+0x42/0x88
      [   10.066914]  [<c140d401>] ? __driver_attach+0xe6/0x11b
      [   10.066924]  [<c1303b13>] ? kobject_add_internal+0x1bb/0x44f
      [   10.066933]  [<c140d31b>] ? driver_probe_device+0x62e/0x62e
      [   10.066941]  [<c140a2d2>] ? bus_for_each_dev+0x46/0x7f
      [   10.066950]  [<c140c502>] ? driver_attach+0x1a/0x34
      [   10.066958]  [<c140d31b>] ? driver_probe_device+0x62e/0x62e
      [   10.066966]  [<c140b758>] ? bus_add_driver+0x217/0x32a
      [   10.066975]  [<f8403000>] ? 0xf8403000
      [   10.066982]  [<c140de27>] ? driver_register+0x5f/0x108
      [   10.066991]  [<c1000493>] ? do_one_initcall+0x49/0x1f6
      [   10.067000]  [<c1082299>] ? pick_next_task_fair+0x14b/0x2a3
      [   10.067008]  [<c1603c8d>] ? __schedule+0x15c/0x4fe
      [   10.067016]  [<c1604104>] ? preempt_schedule_common+0x19/0x3c
      [   10.067027]  [<c11051de>] ? do_init_module+0x17/0x230
      [   10.067035]  [<c1604139>] ? _cond_resched+0x12/0x1a
      [   10.067044]  [<c116f9aa>] ? kmem_cache_alloc+0x8f/0x11f
      [   10.067052]  [<c11051de>] ? do_init_module+0x17/0x230
      [   10.067060]  [<c11703dd>] ? kfree+0x137/0x203
      [   10.067068]  [<c110523d>] ? do_init_module+0x76/0x230
      [   10.067078]  [<c10cadf3>] ? load_module+0x2a39/0x333f
      [   10.067087]  [<c10cb8b2>] ? SyS_finit_module+0x96/0xd5
      [   10.067096]  [<c1132231>] ? vm_mmap_pgoff+0x79/0xa0
      [   10.067105]  [<c1001e96>] ? do_fast_syscall_32+0xb5/0x1b0
      [   10.067114]  [<c16086a6>] ? sysenter_past_esp+0x47/0x75
      [   10.067121] Code: c8 f7 76 c1 e8 8e cc d2 ff e9 45 fe ff ff 66 90 66 90 66 90 66 90 90 ff 00 7f 05 e8 4e 0c 00 00 c3 53 89 c3 e8 75 ec ff ff 89 d8 <ff> 08 79 05 e8 fa 0a 00 00 5b c3 53 89 c3 85 c0 74 1b 8b 03 83
      [   10.067180] EIP: [<c16054b4>] mutex_lock+0xa/0x15 SS:ESP 0068:f5971b58
      [   10.067190] CR2: 0000000000000104
      [   10.067222] ---[ end trace 049f1f09da45a856 ]---
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Fixes: 580d8ed5 ("drm/i915: Give encoders useful names")
      Reviewed-by: default avatarDavid Weinehall <david.weinehall@linux.intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: drm-intel-fixes@lists.freedesktop.org
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20160823092558.14931-1-chris@chris-wilson.co.uk
      8f76aa0e
    • Maarten Lankhorst's avatar
      drm/i915: Cleanup crt disable sequence on hsw+ · b7076546
      Maarten Lankhorst authored
      Instead of iterating overthe connectors manually, run the last part of
      DDI disabling inside the crt post disable function.
      
      This was meant to be addressed before submitting the other commit,
      but I missed the review comments.
      
      Fixes: fd6bbda9 ("drm/i915: Pass crtc_state and connector_state to encoder functions")
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1471961888-10771-2-git-send-email-maarten.lankhorst@linux.intel.comReviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      [mlankhorst: Fix extra whitespace between functions.]
      b7076546
    • Maarten Lankhorst's avatar
      drm/i915: Create a intel_encoder_find_connector helper function. · 496b0fc3
      Maarten Lankhorst authored
      This makes the code in intel_sanitize_encoder slightly more readable.
      This was meant to be addressed in fd6bbda9, but I missed that
      review comment.
      
      Fixes: fd6bbda9 ("drm/i915: Pass crtc_state and connector_state to encoder functions")
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1471961888-10771-1-git-send-email-maarten.lankhorst@linux.intel.comReviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      [mlankhorst: Fix unused variable reported by kbuild.]
      496b0fc3
    • Daniel Vetter's avatar
      io-mapping: Fixup for different names of writecombine · 80c33624
      Daniel Vetter authored
      Somehow architectures can't agree on this. And for good measure make
      sure we have a fallback which should work everywhere (fingers
      crossed).
      
      v2: Make it compile properly, needs a defined() for the #elif.
      
      Fixes: ac96b556 ("io-mapping.h: s/PAGE_KERNEL_IO/PAGE_KERNEL/")
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: linux-mm@kvack.org
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20160823202233.4681-1-daniel.vetter@ffwll.ch
      80c33624
  2. 23 Aug, 2016 17 commits
  3. 22 Aug, 2016 19 commits