Re: [PATCH] drm/i915/dvo: Remove dangling call to drm_encoder_cleanup()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 23 Aug 2016, David Weinehall <david.weinehall@xxxxxxxxxxxxxxx> wrote:
> On Tue, Aug 23, 2016 at 10:25:58AM +0100, Chris Wilson wrote:
>> 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-gef0e1ea #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: Meelis Roos <mroos@xxxxxxxx>
>> Fixes: 580d8ed522e0 ("drm/i915: Give encoders useful names")
>> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
>> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
>> Cc: drm-intel-fixes@xxxxxxxxxxxxxxxxxxxxx
>> ---
>>  drivers/gpu/drm/i915/intel_dvo.c | 1 -
>>  1 file changed, 1 deletion(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
>> index 47bdf9dad0d3..b9e5a63a7c9e 100644
>> --- a/drivers/gpu/drm/i915/intel_dvo.c
>> +++ b/drivers/gpu/drm/i915/intel_dvo.c
>> @@ -554,7 +554,6 @@ void intel_dvo_init(struct drm_device *dev)
>>  		return;
>>  	}
>>  
>> -	drm_encoder_cleanup(&intel_encoder->base);
>>  	kfree(intel_dvo);
>>  	kfree(intel_connector);
>>  }
>
> Reviewed-by: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx>

Applied to dinq, and cherry-picked to fixes. Thanks for the patch and
review.

BR,
Jani.


> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux