• Huang Rui's avatar
    drm/amdkfd: fix null pointer panic while free buffer in kfd · b99a8c8f
    Huang Rui authored
    In drm_gem_object_free, it will call funcs of drm buffer obj. So
    kfd_alloc should use amdgpu_gem_object_create instead of
    amdgpu_bo_create to initialize the funcs as amdgpu_gem_object_funcs.
    
    [  396.231390] amdgpu: Release VA 0x7f76b4ada000 - 0x7f76b4add000
    [  396.231394] amdgpu:   remove VA 0x7f76b4ada000 - 0x7f76b4add000 in entry 0000000085c24a47
    [  396.231408] BUG: kernel NULL pointer dereference, address: 0000000000000000
    [  396.231445] #PF: supervisor read access in kernel mode
    [  396.231466] #PF: error_code(0x0000) - not-present page
    [  396.231484] PGD 0 P4D 0
    [  396.231495] Oops: 0000 [#1] SMP NOPTI
    [  396.231509] CPU: 7 PID: 1352 Comm: clinfo Tainted: G           OE     5.11.0-rc2-custom #1
    [  396.231537] Hardware name: AMD Celadon-RN/Celadon-RN, BIOS WCD0401N_Weekly_20_04_0 04/01/2020
    [  396.231563] RIP: 0010:drm_gem_object_free+0xc/0x22 [drm]
    [  396.231606] Code: eb ec 48 89 c3 eb e7 0f 1f 44 00 00 55 48 89 e5 48 8b bf 00 06 00 00 e8 72 0d 01 00 5d c3 0f 1f 44 00 00 48 8b 87 40 01 00 00 <48> 8b 00 48 85 c0 74 0b 55 48 89 e5 e8 54 37 7c db 5d c3 0f 0b c3
    [  396.231666] RSP: 0018:ffffb4704177fcf8 EFLAGS: 00010246
    [  396.231686] RAX: 0000000000000000 RBX: ffff993a0d0cc400 RCX: 0000000000003113
    [  396.231711] RDX: 0000000000000001 RSI: e9cda7a5d0791c6d RDI: ffff993a333a9058
    [  396.231736] RBP: ffffb4704177fdd0 R08: ffff993a03855858 R09: 0000000000000000
    [  396.231761] R10: ffff993a0d1f7158 R11: 0000000000000001 R12: 0000000000000000
    [  396.231785] R13: ffff993a0d0cc428 R14: 0000000000003000 R15: ffffb4704177fde0
    [  396.231811] FS:  00007f76b5730740(0000) GS:ffff993b275c0000(0000) knlGS:0000000000000000
    [  396.231840] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  396.231860] CR2: 0000000000000000 CR3: 000000016d2e2000 CR4: 0000000000350ee0
    [  396.231885] Call Trace:
    [  396.231897]  ? amdgpu_amdkfd_gpuvm_free_memory_of_gpu+0x24c/0x25f [amdgpu]
    [  396.232056]  ? __dynamic_dev_dbg+0xcd/0x100
    [  396.232076]  kfd_ioctl_free_memory_of_gpu+0x91/0x102 [amdgpu]
    [  396.232214]  kfd_ioctl+0x211/0x35b [amdgpu]
    [  396.232341]  ? kfd_ioctl_get_queue_wave_state+0x52/0x52 [amdgpu]
    
    Fixes: 246cb7e4 ("drm/amdgpu: Introduce GEM object functions")
    Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
    Tested-by: default avatarChangfeng <changzhu@amd.com>
    Signed-off-by: default avatarHuang Rui <ray.huang@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    b99a8c8f
amdgpu_amdkfd_gpuvm.c 60.9 KB