linux/drivers/gpu/drm/radeon
Jason Gunthorpe f2bc09e951 drm/radeon: guard against calling an unpaired radeon_mn_unregister()
This check was accidently deleted in the below commit. There are cases
where the driver will call unregister even though it hasn't registered
anything.

 CPU 0 Unable to handle kernel paging request at virtual address 0000001c, epc == 808de6d4, ra == 804d32ec
 Call Trace:
 [<808de6d4>] mutex_lock+0x8/0x44
 [<804d32ec>] radeon_mn_unregister+0x3c/0xb0
 [<8041583c>] radeon_gem_object_free+0x18/0x2c
 [<803a451c>] drm_gem_object_release_handle+0x74/0xac
 [<803a45d0>] drm_gem_handle_delete+0x7c/0x128
 [<803a5bf4>] drm_ioctl_kernel+0xb0/0x108
 [<803a5e74>] drm_ioctl+0x200/0x3a8
 [<803e07b4>] radeon_drm_ioctl+0x54/0xc0
 [<801214dc>] do_vfs_ioctl+0x4e8/0x81c
 [<80121864>] ksys_ioctl+0x54/0xb0
 [<8001100c>] syscall_common+0x34/0x58

Link: https://lore.kernel.org/r/2fc7ef14-e89a-1f2d-381d-1c9b05da02d3@gmail.com
Fixes: 534e5f84b7 ("drm/radeon: use mmu_notifier_get/put for struct radeon_mn")
Reported-by: Petr Cvek <petrcvekcz@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2019-09-07 04:28:05 -03:00
..
reg_srcs
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: drop drmP.h from header files 2019-06-10 22:30:24 +02:00
atom.h drm/radeon: drop drmP.h from header files 2019-06-10 22:30:24 +02:00
atombios_crtc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
atombios_dp.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
atombios_encoders.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
atombios_i2c.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
atombios.h scripts/spelling.txt: add "aligment" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
avivod.h
btc_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
btc_dpm.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
btcd.h
cayman_blit_shaders.c
cayman_blit_shaders.h
ci_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
ci_dpm.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
ci_smc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h drm/radeon: Remove KFD_CIK_SDMA_QUEUE_OFFSET 2017-12-20 12:00:22 -05:00
cik_sdma.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
cik.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
cikd.h drm/radeon: deprecate and remove KFD interface 2017-10-30 14:16:21 +01:00
clearstate_cayman.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
clearstate_ci.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
cypress_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
cypress_dpm.h
dce3_1_afmt.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
dce6_afmt.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
evergreen_blit_shaders.c
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
evergreen_dma.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
evergreen_hdmi.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
evergreen_reg.h
evergreen_smc.h
evergreen.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
evergreend.h
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
kv_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
kv_dpm.h
kv_smc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
Makefile main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
mkregtable.c drm/radeon: change SPDX identifier to MIT 2018-10-15 16:16:12 -05:00
ni_dma.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
ni_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
ni_dpm.h
ni_reg.h
ni.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
nid.h
nislands_smc.h
ObjectID.h
ppsmc.h
pptable.h
r100_track.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
r100.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r100d.h
r200.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r300_reg.h
r300.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r300d.h
r420.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r420d.h
r500_reg.h
r520.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r520d.h
r600_blit_shaders.c
r600_blit_shaders.h
r600_cs.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r600_dma.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r600_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r600_dpm.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
r600_hdmi.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r600_reg.h drm/radeon: enable ABGR and XBGR formats (v2) 2018-08-27 11:10:19 -05:00
r600.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
r600d.h
radeon_acpi.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_acpi.h drm/radeon: Make radeon_atif_handler static 2017-08-15 14:46:07 -04:00
radeon_agp.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_asic.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_asic.h
radeon_atombios.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_atpx_handler.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 191 2019-05-30 11:29:21 -07:00
radeon_audio.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_audio.h
radeon_benchmark.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_bios.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_clocks.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_combios.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_connectors.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_cs.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_cursor.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_device.c drm/radeon: use mmu_notifier_get/put for struct radeon_mn 2019-08-20 09:35:02 -03:00
radeon_display.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_dp_auxch.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_dp_mst.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_drv.c drm/radeon: use mmu_notifier_get/put for struct radeon_mn 2019-08-20 09:35:02 -03:00
radeon_drv.h drm/radeon: drop unused ati pcigart include. 2019-04-24 12:32:14 +10:00
radeon_encoders.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_family.h
radeon_fb.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_fence.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_gart.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_gem.c drm-misc-next for v5.3: 2019-06-14 11:44:24 +02:00
radeon_i2c.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_ib.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_irq_kms.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_kms.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_legacy_crtc.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_legacy_encoders.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_legacy_tv.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_mn.c drm/radeon: guard against calling an unpaired radeon_mn_unregister() 2019-09-07 04:28:05 -03:00
radeon_mode.h drm/radeon: radeon_framebuffer -> drm_framebuffer 2018-04-11 13:07:56 -05:00
radeon_object.c drm-misc-next for v5.3: 2019-06-14 11:44:24 +02:00
radeon_object.h drm/ttm: add evict parameter to ttm_bo_driver::move_notify 2017-01-27 11:13:15 -05:00
radeon_pm.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_prime.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_reg.h
radeon_ring.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_sa.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_semaphore.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_sync.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_test.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_trace_points.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_trace.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
radeon_ttm.c Merge branch 'drm-next' into drm-next-5.3 2019-06-25 08:42:25 -05:00
radeon_ucode.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_ucode.h
radeon_uvd.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_vce.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon_vm.c drm/radeon: drop use of drmP.h (1/2) 2019-06-10 22:30:24 +02:00
radeon.h drm/radeon: use mmu_notifier_get/put for struct radeon_mn 2019-08-20 09:35:02 -03:00
rs100d.h
rs400.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rs400d.h
rs600.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rs600d.h
rs690.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rs690d.h
rs780_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv515d.h
rv730_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv730d.h
rv740_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv740d.h
rv770_dma.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv770_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv770_dpm.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
rv770_smc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv770_smc.h
rv770.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
rv770d.h
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
si_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
si_dpm.h
si_reg.h
si_smc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
si.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
sid.h drm/radeon: allow TA_CS_BC_BASE_ADDR on SI 2016-10-12 15:44:15 -04:00
sislands_smc.h
smu7_discrete.h
smu7_fusion.h
smu7.h
sumo_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
sumo_dpm.h drm/radeon: prepare header files for drmP.h removal 2019-06-10 22:30:24 +02:00
sumo_smc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
sumod.h
trinity_dpm.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
trinity_dpm.h
trinity_smc.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
trinityd.h
uvd_v1_0.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
uvd_v2_2.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
uvd_v3_1.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
uvd_v4_2.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
vce_v1_0.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00
vce_v2_0.c drm/radeon: drop use of drmP.h (2/2) 2019-06-10 22:30:24 +02:00