diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-15 15:23:27 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-15 15:23:27 -0500 |
| commit | 70b49517fe95940c7e91c3d7fdb0ea3014a1534f (patch) | |
| tree | 83607b8209aab0e1b751772dcfcd29e6abe08500 /kernel/gsp_phys_fwsec.c | |
| parent | c9661edb46f087c67ffd9dca7ac30b291503ecd3 (diff) | |
| download | open-iov-70b49517fe95940c7e91c3d7fdb0ea3014a1534f.tar.gz open-iov-70b49517fe95940c7e91c3d7fdb0ea3014a1534f.zip | |
vgsp: eng59c - preserve the saved release window across the beef channel recycle; defer non-ready takes
c765/c766: the release carrier saved the held 324/728 B window, then the
client re-registered the beef channel before the pack completed. The
follow-up's chan_ctx_reset cancelled the saved record unconditionally
(consumed=true, valid=false) even though keep_done_across_recycle=1 means
the engine context and packed program survive; the pack-completion arm then
early-returned and the release never fired.
With keep_done_across_recycle=1 the re-register is a client-handle recycle,
not a context loss: keep the release record. Cancel it only in the genuine
!keep_done wipe path. Also make release_take defer (not consume) on
not-armed/grace/pack-not-resident with bounded MME-CARRY-HOLD receipts;
only terminal conditions or a failed fire consume. release_rearm now runs
unconditionally with the knob on and release_arm gates on pack_done, so the
record survives the save->completion gap.
Build rc 0; validation pending.
Diffstat (limited to 'kernel/gsp_phys_fwsec.c')
0 files changed, 0 insertions, 0 deletions
