summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 16:04:33 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-05 16:04:33 -0400
commitcc1028dffcbf9e028938555827f02b18ceba1665 (patch)
tree106cb12ed468d1df87725cbbcd965fb2f7cf9a1a /kernel/gsp_phys_gpu.c
parent9a8a48b71ddc868f2c52e36e8e4e2f622236054d (diff)
downloadopen-iov-cc1028dffcbf9e028938555827f02b18ceba1665.tar.gz
open-iov-cc1028dffcbf9e028938555827f02b18ceba1665.zip
vgsp: FWCLIENT entry-selection mask and golden-replay hardening
- gsp_phys_rmcall_fwclient_mask (default 0x3f): per-entry selection for the mode-24 FWCLIENT promote set; bit6 selects the MAIN UVM VA-only shape. - golden replay: tolerate the client-local system-memory PB step and continue with hObjectBuffer=0; on-ladder TURING_A 3D object retained best-effort. Live bisection on the KMD channel: MAIN alone reaches the per-buffer commit and stops at the engine-context memdesc state; PM-only and PATCH-only are accepted; any multi-entry control containing MAIN is refused 0x1f. All cycles release clean.
Diffstat (limited to 'kernel/gsp_phys_gpu.c')
-rw-r--r--kernel/gsp_phys_gpu.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c
index cd04007..5e6b264 100644
--- a/kernel/gsp_phys_gpu.c
+++ b/kernel/gsp_phys_gpu.c
@@ -228,6 +228,25 @@ int gsp_phys_rmcall_channel_value(void)
EXPORT_SYMBOL_GPL(gsp_phys_rmcall_channel_value);
/*
+ * FWCLIENT promote entry-selection mask (mode 24 bisection; default 0x3f =
+ * all six reference non-3D buffers). Bit i selects emitted entry i:
+ * 0 MAIN, 1 PM, 2 PATCH, 3 FECS_EVENT, 4 PRIV_ACCESS_MAP,
+ * 5 UNRESTRICTED_PRIV_ACCESS_MAP. Lets a bisection isolate which entry the
+ * server refuses without a rebuild.
+ */
+static u32 gsp_phys_rmcall_fwclient_mask_param = 0x3fu;
+module_param_named(gsp_phys_rmcall_fwclient_mask,
+ gsp_phys_rmcall_fwclient_mask_param, uint, 0644);
+MODULE_PARM_DESC(gsp_phys_rmcall_fwclient_mask,
+ "Bitmask (default 0x3f) selecting the mode-24 FWCLIENT promote entries to emit: bit0 MAIN, bit1 PM, bit2 PATCH, bit3 FECS_EVENT, bit4 PRIV_ACCESS_MAP, bit5 UNRESTRICTED_PRIV_ACCESS_MAP");
+
+u32 gsp_phys_rmcall_fwclient_mask_value(void)
+{
+ return gsp_phys_rmcall_fwclient_mask_param;
+}
+EXPORT_SYMBOL_GPL(gsp_phys_rmcall_fwclient_mask_value);
+
+/*
* Golden-image replay (default 0). When set (and gsp_phys_gpu=1), the rm-call
* ladder's stage 3 replays the stock client's post-load golden-image channel
* allocations (kgraphicsCreateGoldenImageChannel: a separate