From 215c61757395e24ab7db38f397f079fb89ea19d7 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Fri, 25 Sep 2026 03:38:01 -0400 Subject: gsp_rm: make GSP_SET_SYSTEM_INFO/SET_REGISTRY fire-and-forget (no reply) Guest driver was receiving SUCCESS replies as 'unexpected events' (0x48, 0x49). These async init RPCs are fire-and-forget per GSP-RM protocol; driver doesn't expect a reply on the status queue. CONTINUATION_RECORD still sends SUCCESS. --- kernel/gsp_rm_emulation.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/kernel/gsp_rm_emulation.c b/kernel/gsp_rm_emulation.c index eaa2ff5..a1c653e 100644 --- a/kernel/gsp_rm_emulation.c +++ b/kernel/gsp_rm_emulation.c @@ -2866,8 +2866,16 @@ static void gsp_rm_handle_element(struct gsp_emu_context *ctx, const u8 *elem) switch (function) { case GSPRM_RPC_FUNC_GSP_SET_SYSTEM_INFO: case GSPRM_RPC_FUNC_SET_REGISTRY: + /* Async init RPCs - fire and forget, no reply expected. + * Guest was treating SUCCESS replies as "unexpected events". */ + nv_vgpu_info(ctx->vgpu, "GSPRM: async RPC %s(%u) seq=%u len=%u -> NO REPLY (fire-and-forget)", + gsp_rm_rpc_name(function), function, sequence, + hdr->length); + rm->rpcs_replied++; + return; + case GSPRM_RPC_FUNC_CONTINUATION_RECORD: - /* Async init RPCs - but driver expects a reply. Send SUCCESS. */ + /* CONTINUATION_RECORD: driver expects a reply. Send SUCCESS. */ nv_vgpu_info(ctx->vgpu, "GSPRM: async RPC %s(%u) seq=%u len=%u -> SUCCESS reply", gsp_rm_rpc_name(function), function, sequence, hdr->length); -- cgit v1.2.3