diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 13:43:30 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-30 13:43:30 -0400 |
| commit | a32d7349b0bf7f72e70c4d35ffc897b1c6c83512 (patch) | |
| tree | 71e7d1b768fc2666b333701900f76e78ef8bd50b /kernel/gsp_rm_emulation.c | |
| parent | 0b25dd23386c8752488552cb2713819c097d3375 (diff) | |
| download | open-iov-a32d7349b0bf7f72e70c4d35ffc897b1c6c83512.tar.gz open-iov-a32d7349b0bf7f72e70c4d35ffc897b1c6c83512.zip | |
GSPRM BUS_GET_PCI_BAR_INFO: reply the canonical 8-entry params struct
The control is cacheable in the guest kernel (RMCTRL_FLAGS_CACHEABLE)
and rmapiControlCacheSet validates paramsSize against the canonical
sizeof(NV2080_CTRL_BUS_GET_PCI_BAR_INFO_PARAMS) = 200. We replied only
8 + 4*24 = 104 bytes, so every reply tripped
NV_ERR_INVALID_PARAMETER in rmapiControlCacheSet (rpc.c:9998) and the
BAR-info cache entry was never populated. Zero-fill and report all
eight NV2080_CTRL_BUS_PCI_BAR_INFO entries (count still 4).
Diffstat (limited to 'kernel/gsp_rm_emulation.c')
| -rw-r--r-- | kernel/gsp_rm_emulation.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/gsp_rm_emulation.c b/kernel/gsp_rm_emulation.c index 76d4eba..ff65275 100644 --- a/kernel/gsp_rm_emulation.c +++ b/kernel/gsp_rm_emulation.c @@ -1460,7 +1460,7 @@ static void gsp_rm_handle_bus_get_pci_bar_info(struct gsp_emu_context *ctx, memcpy(e + 16, &offsets[i], 8); } - *out_params_size = 8 + count * 24; + *out_params_size = 8 + 8 * 24; *out_status = 0; nv_vgpu_info(ctx->vgpu, "GSPRM: BUS_GET_PCI_BAR_INFO -> %u BARs (BAR1=%uMB)", |
