summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_emulation.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-08 07:13:42 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-08 07:13:42 -0500
commit552f034bd126a4332136bd2c245d5535f00728c0 (patch)
tree171fd295b9ea36e8c0252a074cddd73c0d2b4a7a /kernel/gsp_emulation.h
parent4942e2afb6a9470e5c8f3c60515656551bd1e2f2 (diff)
downloadopen-iov-552f034bd126a4332136bd2c245d5535f00728c0.tar.gz
open-iov-552f034bd126a4332136bd2c245d5535f00728c0.zip
vgsp-disp: find the instance block by the ctxDMA handle anywhere
The guest BAR1 is a 256 MB window over a 512 MB FB, so the RM writes vidmem through a shifted BAR1 block and the announced instance PA does not index the shadow (r1632: hash_nz=0 at 0x1fff0000; scan also empty where it looked). Resolve like the hardware does, but empirically: parse the announced block; if the handle is not there, search the FB shadow (then guest RAM for the coherent-mapping case) for the 64 KB block that contains an entry for the ctxDMA handle and _parses_ into a valid object entry; use that block's object entry for PA/limit. Cheap for the 56-per-boot notifier writes: a failed handle is not rescanned for 5 s.
Diffstat (limited to 'kernel/gsp_emulation.h')
0 files changed, 0 insertions, 0 deletions