android_kernel_google_msm/drivers/gpu/drm/radeon
Dave Airlie d78e77628e drm/radeon: fix hotplug race at startup
commit 7f98ca454ad373fc1b76be804fa7138ff68c1d27 upstream.

We apparantly get a hotplug irq before we've initialised
modesetting,

[drm] Loading R100 Microcode
BUG: unable to handle kernel NULL pointer dereference at   (null)
IP: [<c125f56f>] __mutex_lock_slowpath+0x23/0x91
*pde = 00000000
Oops: 0002 [#1]
Modules linked in: radeon(+) drm_kms_helper ttm drm i2c_algo_bit backlight pcspkr psmouse evdev sr_mod input_leds led_class cdrom sg parport_pc parport floppy intel_agp intel_gtt lpc_ich acpi_cpufreq processor button mfd_core agpgart uhci_hcd ehci_hcd rng_core snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm usbcore usb_common i2c_i801 i2c_core snd_timer snd soundcore thermal_sys
CPU: 0 PID: 15 Comm: kworker/0:1 Not tainted 4.2.0-rc7-00015-gbf67402 #111
Hardware name: MicroLink                               /D850MV                         , BIOS MV85010A.86A.0067.P24.0304081124 04/08/2003
Workqueue: events radeon_hotplug_work_func [radeon]
task: f6ca5900 ti: f6d3e000 task.ti: f6d3e000
EIP: 0060:[<c125f56f>] EFLAGS: 00010282 CPU: 0
EIP is at __mutex_lock_slowpath+0x23/0x91
EAX: 00000000 EBX: f5e900fc ECX: 00000000 EDX: fffffffe
ESI: f6ca5900 EDI: f5e90100 EBP: f5e90000 ESP: f6d3ff0c
 DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
CR0: 8005003b CR2: 00000000 CR3: 36f61000 CR4: 000006d0
Stack:
 f5e90100 00000000 c103c4c1 f6d2a5a0 f5e900fc f6df394c c125f162 f8b0faca
 f6d2a5a0 c138ca00 f6df394c f7395600 c1034741 00d40000 00000000 f6d2a5a0
 c138ca00 f6d2a5b8 c138ca10 c1034b58 00000001 f6d40000 f6ca5900 f6d0c940
Call Trace:
 [<c103c4c1>] ? dequeue_task_fair+0xa4/0xb7
 [<c125f162>] ? mutex_lock+0x9/0xa
 [<f8b0faca>] ? radeon_hotplug_work_func+0x17/0x57 [radeon]
 [<c1034741>] ? process_one_work+0xfc/0x194
 [<c1034b58>] ? worker_thread+0x18d/0x218
 [<c10349cb>] ? rescuer_thread+0x1d5/0x1d5
 [<c103742a>] ? kthread+0x7b/0x80
 [<c12601c0>] ? ret_from_kernel_thread+0x20/0x30
 [<c10373af>] ? init_completion+0x18/0x18
Code: 42 08 e8 8e a6 dd ff c3 57 56 53 83 ec 0c 8b 35 48 f7 37 c1 8b 10 4a 74 1a 89 c3 8d 78 04 8b 40 08 89 63

Reported-and-Tested-by: Meelis Roos <mroos@linux.ee>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Zefan Li <lizefan@huawei.com>
2016-10-26 23:15:43 +08:00
..
reg_srcs drm/radeon: add WAIT_UNTIL to the non-VM safe regs list for cayman/TN 2013-02-11 08:47:17 -08:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon/atom: initialize more atom interpretor elements to 0 2013-08-04 16:25:57 +08:00
atom.h
atombios.h
atombios_crtc.c drm/radeon: fix doublescan modes (v2) 2015-09-18 09:20:24 +08:00
atombios_dp.c drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary 2015-06-19 11:40:16 +08:00
atombios_encoders.c drm/radeon/atom: fix dithering on certain panels 2014-07-09 10:51:20 -07:00
atombios_i2c.c drm/radeon: fix endian bugs in hw i2c atom routines 2013-10-01 09:10:51 -07:00
avivod.h
cayman_blit_shaders.c
cayman_blit_shaders.h
evergreen.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-10-22 09:20:08 +08:00
evergreen_blit_kms.c
evergreen_blit_shaders.c
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: skip colorbuffer checking if COLOR_INFO.FORMAT is set to INVALID 2014-02-13 11:51:16 -08:00
evergreen_reg.h drm/radeon: properly lock disp in mc_stop/resume for evergreen+ 2013-05-11 13:48:11 -07:00
evergreend.h drm/radeon: update line buffer allocation for dce4.1/5 2013-10-01 09:10:51 -07:00
Kconfig
Makefile
mkregtable.c
ni.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-10-22 09:20:08 +08:00
ni_reg.h
nid.h drm/radeon/dce6: add missing display reg for tiling setup 2013-05-11 13:48:11 -07:00
ObjectID.h
r100.c drm/radeon: do a posting read in r100_set_irq 2015-06-19 11:40:20 +08:00
r100_track.h
r100d.h
r200.c
r300.c radeon: Fix system hang issue when using KMS with older cards 2013-06-13 09:45:00 -07:00
r300_cmdbuf.c drm/radeon: check incoming cliprects pointer 2013-05-19 10:54:50 -07:00
r300_reg.h
r300d.h
r420.c radeon: Fix system hang issue when using KMS with older cards 2013-06-13 09:45:00 -07:00
r420d.h
r500_reg.h
r520.c radeon: Fix system hang issue when using KMS with older cards 2013-06-13 09:45:00 -07:00
r520d.h
r600.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-10-22 09:20:08 +08:00
r600_audio.c
r600_blit.c
r600_blit_kms.c
r600_blit_shaders.c
r600_blit_shaders.h
r600_cp.c
r600_cs.c drm/radeon: skip colorbuffer checking if COLOR_INFO.FORMAT is set to INVALID 2014-02-13 11:51:16 -08:00
r600_hdmi.c drm/radeon: fix hdmi mode enable on RS600/RS690/RS740 2014-06-07 16:02:13 -07:00
r600_reg.h
r600d.h drm/radeon: set the full cache bit for fences on r7xx+ 2014-02-13 11:51:16 -08:00
radeon.h drm/radeon: split ATRM support out from the ATPX handler (v3) 2012-10-02 10:30:22 -07:00
radeon_acpi.c
radeon_agp.c radeon: add AGPMode 1 quirk for RV250 2012-12-03 11:47:09 -08:00
radeon_asic.c
radeon_asic.h drm/radeon: properly handle mc_stop/mc_resume on evergreen+ (v2) 2012-12-10 10:59:39 -08:00
radeon_atombios.c drm/radeon: add connector quirk for fujitsu board 2014-12-01 18:02:26 +08:00
radeon_atpx_handler.c drm/radeon: fix ATPX detection on non-VGA GPUs 2014-06-07 16:02:01 -07:00
radeon_benchmark.c drm/radeon/benchmark: make sure bo blit copy exists before using it 2013-03-28 12:12:14 -07:00
radeon_bios.c radeon: Do not directly dereference pointers to BIOS area. 2015-06-19 11:40:30 +08:00
radeon_blit_common.h
radeon_clocks.c
radeon_combios.c Add radeon suspend/resume quirk for HP Compaq dc5750. 2016-04-27 18:55:17 +08:00
radeon_connectors.c DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd 2016-04-27 18:55:16 +08:00
radeon_cp.c
radeon_cs.c Revert "drm/radeon: Use drm_calloc_ab for CS relocs" 2015-10-22 09:20:07 +08:00
radeon_cursor.c drm/radeon: fix cursor corruption on DCE6 and newer 2013-02-03 18:24:40 -06:00
radeon_device.c drm/radeon: disable tests/benchmarks if accel is disabled 2013-10-05 07:06:54 -07:00
radeon_display.c drm/radeon: avoid leaking edid data 2014-07-28 07:06:46 -07:00
radeon_drv.c
radeon_drv.h
radeon_encoders.c
radeon_family.h
radeon_fb.c
radeon_fence.c
radeon_gart.c
radeon_gem.c
radeon_i2c.c drm/radeon: warn users when hw_i2c is enabled (v2) 2014-02-13 11:51:15 -08:00
radeon_ioc32.c
radeon_irq.c
radeon_irq_kms.c drm/radeon: fix hotplug race at startup 2016-10-26 23:15:43 +08:00
radeon_kms.c drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with 3.18.0-rc6 2015-04-14 17:33:39 +08:00
radeon_legacy_crtc.c radeon: workaround pinning failure on low ram gpu 2013-12-04 10:50:33 -08:00
radeon_legacy_encoders.c radeon/kms: force rn50 chip to always report connected on analog output 2013-01-17 08:51:03 -08:00
radeon_legacy_tv.c
radeon_mem.c
radeon_mode.h drm/radeon: add connector table for Mac G4 Silver 2014-06-07 16:02:11 -07:00
radeon_object.c
radeon_object.h
radeon_pm.c radeon/pm: Guard access to rdev->pm.power_state array 2014-02-13 11:51:15 -08:00
radeon_reg.h
radeon_ring.c drm/radeon: prevent crash in the ring space allocation 2013-02-11 08:47:18 -08:00
radeon_sa.c
radeon_semaphore.c
radeon_state.c
radeon_test.c
radeon_trace.h
radeon_trace_points.c
radeon_ttm.c drm/radeon: check the right ring in radeon_evict_flags() 2015-04-14 17:33:45 +08:00
rs100d.h
rs400.c drm/radeon: fix resume on some rs4xx boards (v2) 2013-10-01 09:10:51 -07:00
rs400d.h
rs600.c drm/radeon: do a posting read in rs600_set_irq 2015-06-19 11:40:20 +08:00
rs600d.h
rs690.c radeon: Fix system hang issue when using KMS with older cards 2013-06-13 09:45:00 -07:00
rs690d.h
rv200d.h
rv250d.h
rv350d.h
rv515.c radeon: Fix system hang issue when using KMS with older cards 2013-06-13 09:45:00 -07:00
rv515d.h
rv770.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-10-22 09:20:08 +08:00
rv770d.h
si.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-10-22 09:20:08 +08:00
si_blit_shaders.c
si_blit_shaders.h
si_reg.h
sid.h drm/radeon/si: fix define for MC_SEQ_TRAIN_WAKEUP_CNTL 2013-12-04 10:50:33 -08:00