summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_boot.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 21:16:49 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-09 21:16:49 -0400
commitbe6e5ee20e50b3109b74bdd9c18f15f8f8c3f724 (patch)
treee375eb4a0061cb56d7aaed0c7fc28ba51c7a4620 /kernel/gsp_phys_boot.c
parent948889a88890eaf418fc8d3d503c7c55116aad4e (diff)
downloadopen-iov-be6e5ee20e50b3109b74bdd9c18f15f8f8c3f724.tar.gz
open-iov-be6e5ee20e50b3109b74bdd9c18f15f8f8c3f724.zip
vgsp-sema: re-seed and apply the first release of a fresh CE channel when the pool word is residue (ISSUE-0002)
A fresh session's first CE release could read a previous session's value through the just-injected pool pin (r64: cur=134 pay=1; r63: cur=114696). svc_init_expected_payload seeded the channel expectation from that residue, the release candidate then skipped as stale (payload <= cur) and the client's first tracker wait never completed. When the first GPFIFO entry of a fresh CE channel (submissions == 0) decodes a pool release whose word reads ahead of the payload, treat the word as residue: re-seed expected_sem_payload/entry_want from the payload and apply the release absolute instead of skipping. Monotonic trackers make the absolute write idempotent; displaced pins stay owned by the fan-out/pending paths. Bounded 'sema-chan: pool residue' diagnostic plus a residue counter in the drain line.
Diffstat (limited to 'kernel/gsp_phys_boot.c')
0 files changed, 0 insertions, 0 deletions