• Dave Airlie's avatar
    drm/amdgpu/cs: make commands with 0 chunks illegal behaviour. · 31ab27b1
    Dave Airlie authored
    Submitting a cs with 0 chunks, causes an oops later, found trying
    to execute the wrong userspace driver.
    
    MESA_LOADER_DRIVER_OVERRIDE=v3d glxinfo
    
    [172536.665184] BUG: kernel NULL pointer dereference, address: 00000000000001d8
    [172536.665188] #PF: supervisor read access in kernel mode
    [172536.665189] #PF: error_code(0x0000) - not-present page
    [172536.665191] PGD 6712a0067 P4D 6712a0067 PUD 5af9ff067 PMD 0
    [172536.665195] Oops: 0000 [#1] SMP NOPTI
    [172536.665197] CPU: 7 PID: 2769838 Comm: glxinfo Tainted: P           O      5.10.81 #1-NixOS
    [172536.665199] Hardware name: To be filled by O.E.M. To be filled by O.E.M./CROSSHAIR V FORMULA-Z, BIOS 2201 03/23/2015
    [172536.665272] RIP: 0010:amdgpu_cs_ioctl+0x96/0x1ce0 [amdgpu]
    [172536.665274] Code: 75 18 00 00 4c 8b b2 88 00 00 00 8b 46 08 48 89 54 24 68 49 89 f7 4c 89 5c 24 60 31 d2 4c 89 74 24 30 85 c0 0f 85 c0 01 00 00 <48> 83 ba d8 01 00 00 00 48 8b b4 24 90 00 00 00 74 16 48 8b 46 10
    [172536.665276] RSP: 0018:ffffb47c0e81bbe0 EFLAGS: 00010246
    [172536.665277] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
    [172536.665278] RDX: 0000000000000000 RSI: ffffb47c0e81be28 RDI: ffffb47c0e81bd68
    [172536.665279] RBP: ffff936524080010 R08: 0000000000000000 R09: ffffb47c0e81be38
    [172536.665281] R10: ffff936524080010 R11: ffff936524080000 R12: ffffb47c0e81bc40
    [172536.665282] R13: ffffb47c0e81be28 R14: ffff9367bc410000 R15: ffffb47c0e81be28
    [172536.665283] FS:  00007fe35e05d740(0000) GS:ffff936c1edc0000(0000) knlGS:0000000000000000
    [172536.665284] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [172536.665286] CR2: 00000000000001d8 CR3: 0000000532e46000 CR4: 00000000000406e0
    [172536.665287] Call Trace:
    [172536.665322]  ? amdgpu_cs_find_mapping+0x110/0x110 [amdgpu]
    [172536.665332]  drm_ioctl_kernel+0xaa/0xf0 [drm]
    [172536.665338]  drm_ioctl+0x201/0x3b0 [drm]
    [172536.665369]  ? amdgpu_cs_find_mapping+0x110/0x110 [amdgpu]
    [172536.665372]  ? selinux_file_ioctl+0x135/0x230
    [172536.665399]  amdgpu_drm_ioctl+0x49/0x80 [amdgpu]
    [172536.665403]  __x64_sys_ioctl+0x83/0xb0
    [172536.665406]  do_syscall_64+0x33/0x40
    [172536.665409]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2018Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    31ab27b1
amdgpu_cs.c 41.2 KB