nouveau_fence_wait_uevent NULL pointer dereference
Submitted by Kostadin Atanasov
Assigned to Nouveau Project
Description
Created attachment 89234 patch_to_protect_fence_channel
Upon normal computer operation user session(GNOME-Shell) sometimes will just terminate. Problem seems more common if two users are logged in(GNOME-Shell) for a day.
GPU: NVIDIA Corporation C77 [GeForce 8300] (rev a2)
kernel version: 3.12.0-upstream
Relevent dmesg output:
[29434.602169] Call Trace:
[29434.602188] [<ffffffffa010b6db>
] ? nouveau_fence_wait_uevent.isra.1+0x1b/0x3f0 [nouveau]
[29434.602208] [<ffffffffa010b676>
] ? nouveau_fence_update+0x76/0x90 [nouveau]
[29434.602228] [<ffffffffa010bb36>
] nouveau_fence_wait+0x86/0x1a0 [nouveau]
[29434.602248] [<ffffffffa010d7a5>
] nouveau_bo_fence_wait+0x15/0x20 [nouveau]
[29434.602260] [<ffffffffa00658a1>
] ttm_bo_wait+0x91/0x190 [ttm]
[29434.602279] [<ffffffffa0112e57>
] nouveau_gem_ioctl_cpu_prep+0x57/0xe0 [nouveau]
[29434.602294] [<ffffffffa0010c52>
] drm_ioctl+0x502/0x630 [drm]
[29434.602313] [<ffffffffa0108d11>
] nouveau_drm_ioctl+0x51/0x90 [nouveau]
[29434.602324] [<ffffffff811b3690>
] do_vfs_ioctl+0x2e0/0x4c0
[29434.602332] [<ffffffff811a2e2e>
] ? ____fput+0xe/0x10
[29434.602340] [<ffffffff81080544>
] ? task_work_run+0xa4/0xe0
[29434.602347] [<ffffffff811b38f1>
] SyS_ioctl+0x81/0xa0
[29434.602356] [<ffffffff814f81ad>
] system_call_fastpath+0x1a/0x1f
[29434.602364] Code: c3 0f 1f 84 00 00 00 00 00 66 66 66 66 90 55 48 89 e5 41 57 49 89 f7 41 56 41 55 41 54 41 89 d4 53 48 89 fb 48 83 ec 58 48 8b 07 <48>
8b 48 08 48 8b 91 f8 00 00 00 4c 8b b1 b0 07 00 00 48 8b 42
I'm trying some change(adding it as patch) - no problem so far, but since I have zero experience in kernel/driver workflow definitely not sure if it's OK.
Regards, K
Attachment 89234, "patch_to_protect_fence_channel":
0001-protect-fence-channel-with-spin-lock.patch