summaryrefslogtreecommitdiffstats
path: root/wiki/Graphics-Execution.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-07 22:56:40 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-07 22:56:40 -0500
commit94c68e118d05f9a4c4b398f4a057cb8a636dac69 (patch)
tree842ec0ae0d6616c002bfdac48273cd629933bb1e /wiki/Graphics-Execution.md
parentd2524210912b934edab92e4412f6f7680ae048bb (diff)
downloadopen-iov-94c68e118d05f9a4c4b398f4a057cb8a636dac69.tar.gz
open-iov-94c68e118d05f9a4c4b398f4a057cb8a636dac69.zip
vgsp-disp: fix disp.lock self-deadlock; backfill h_object from the alloc
gsp_disp_engine_channel_add() took disp.lock and then called the self-locking gsp_disp_find_object(), deadlocking the RPC thread on the first display push-buffer control (r1621c: watchdog hard lockups in gsp_emu_0 channel_add+0x13b and gsp-sema-svc pump+0x88, R13=0xc57d). Use a caller-holds-lock helper instead. The push-buffer control arrives before the alloc (control, registration, alloc), so a channel registered from the control had h_object=0 and the completion-event post stayed inert. Backfill h_object when the alloc note lands for a registered channel.
Diffstat (limited to 'wiki/Graphics-Execution.md')
0 files changed, 0 insertions, 0 deletions