[PATCH] drm/amdgpu/uvd7: add emit_reg_write_reg_wait ring callback

Huang Rui ray.huang at amd.com
Fri Apr 27 07:55:35 UTC 2018


On Thu, Apr 26, 2018 at 07:12:07PM +0800, Xiaojie Yuan wrote:
> Fix the NULL pointer dereference while running amdgpu_test:
> 
> [   54.972246] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
> [   54.972265] IP:           (null)
> [   54.972273] PGD 0 P4D 0
> [   54.972280] Oops: 0010 [#1] SMP PTI
> [   54.972288] Modules linked in: amdkfd amd_iommu_v2 amdgpu(OE) chash gpu_sched ttm drm_kms_helper drm i2c_algo_bit fb_sys_fops syscopyarea sysfillrect sysimgblt snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep intel_rapl snd_pcm snd_seq_midi snd_seq_midi_event snd_rawmidi x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel snd_seq snd_seq_device kvm irqbypass snd_timer crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc snd soundcore joydev input_leds aesni_intel aes_x86_64 crypto_simd glue_helper cryptd idma64 virt_dma mei_me intel_lpss_pci serio_raw intel_cstate intel_rapl_perf shpchp intel_pch_thermal mei mac_hid intel_lpss acpi_pad parport_pc ppdev nfsd lp auth_rpcgss nfs_acl lockd grace sunrpc parport autofs4 hid_generic
> [   54.972434]  usbhid mxm_wmi e1000e psmouse ahci hid libahci wmi pinctrl_sunrisepoint video pinctrl_intel
> [   54.972457] CPU: 6 PID: 1393 Comm: uvd Tainted: G           OE    4.16.0-rc7-27fb84fda777 #1
> [   54.972473] Hardware name: MSI MS-7984/Z170 KRAIT GAMING (MS-7984), BIOS B.80 05/11/2016
> [   54.972489] RIP: 0010:          (null)
> [   54.972497] RSP: 0018:ffffaea002c8bcc0 EFLAGS: 00010202
> [   54.972508] RAX: 0000000000000000 RBX: ffff9d30d3c56f60 RCX: 00000000007c0002
> [   54.972522] RDX: 000000000001a6fb RSI: 000000000001a6e9 RDI: ffff9d30d3c56f60
> [   54.972536] RBP: ffffaea002c8bd10 R08: 0000000000000002 R09: ffffffffc06977d0
> [   54.972550] R10: 0000000000000040 R11: 0000000000000000 R12: 0000000000000002
> [   54.972564] R13: ffff9d30d3c5001c R14: ffff9d30d3c50000 R15: 0000000000000006
> [   54.972579] FS:  0000000000000000(0000) GS:ffff9d30eed80000(0000) knlGS:0000000000000000
> [   54.972594] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   54.972606] CR2: 0000000000000000 CR3: 00000002dbc0a001 CR4: 00000000003606e0
> [   54.972620] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [   54.972634] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [   54.972648] Call Trace:
> [   54.972685]  ? gmc_v9_0_emit_flush_gpu_tlb+0x111/0x140 [amdgpu]
> [   54.972721]  uvd_v7_0_ring_emit_vm_flush+0x31/0x70 [amdgpu]
> [   54.972751]  amdgpu_vm_flush+0x5dc/0x6c0 [amdgpu]
> [   54.972787]  ? pp_dpm_powergate_uvd+0x50/0x80 [amdgpu]
> [   54.972816]  amdgpu_ib_schedule+0x120/0x4e0 [amdgpu]
> [   54.972850]  amdgpu_job_run+0x17b/0x1c0 [amdgpu]
> [   54.972861]  drm_sched_main+0x2cc/0x490 [gpu_sched]
> [   54.972873]  ? wait_woken+0x80/0x80
> [   54.972882]  kthread+0x121/0x140
> [   54.972891]  ? drm_sched_job_finish+0xf0/0xf0 [gpu_sched]
> [   54.972902]  ? kthread_create_worker_on_cpu+0x70/0x70
> [   54.972914]  ret_from_fork+0x35/0x40
> [   54.972922] Code:  Bad RIP value.
> [   54.972932] RIP:           (null) RSP: ffffaea002c8bcc0
> [   54.972943] CR2: 0000000000000000
> [   54.972951] ---[ end trace 5feb349263bbf633 ]---
> 
> Change-Id: I0bb6daf47b6946785e7cefec5d05d09a42ca9a3c
> Signed-off-by: Xiaojie Yuan <Xiaojie.Yuan at amd.com>

Reviewed-by: Huang Rui <ray.huang at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
> index 280c0826e183..2251db4048f5 100644
> --- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
> @@ -1671,6 +1671,7 @@ static const struct amdgpu_ring_funcs uvd_v7_0_ring_vm_funcs = {
>  	.end_use = amdgpu_uvd_ring_end_use,
>  	.emit_wreg = uvd_v7_0_ring_emit_wreg,
>  	.emit_reg_wait = uvd_v7_0_ring_emit_reg_wait,
> +	.emit_reg_write_reg_wait = amdgpu_ring_emit_reg_write_reg_wait_helper,
>  };
>  
>  static const struct amdgpu_ring_funcs uvd_v7_0_enc_ring_vm_funcs = {
> -- 
> 2.17.0
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list