diff options
| author | Gal Pressman <gal@nvidia.com> | 2026-02-25 16:50:50 +0200 |
|---|---|---|
| committer | Sean Christopherson <seanjc@google.com> | 2026-03-02 16:12:42 -0800 |
| commit | 1450ab08108ccd825c8f9362475fadfc187942fc (patch) | |
| tree | 6ed787ff9a72bac7497b406dab24b3470b466158 /rust/kernel/interop/git@git.tavy.me:linux-stable.git | |
| parent | 11439c4635edd669ae435eec308f4ab8a0804808 (diff) | |
KVM: x86/mmu: Fix UBSAN warning when reading nx_huge_pages parameter
The nx_huge_pages parameter is stored as an int (initialized to -1 to
indicate auto mode), but get_nx_huge_pages() calls param_get_bool()
which expects a bool pointer.
This causes UBSAN to report "load of value 255 is not a valid value for
type '_Bool'" when the parameter is read via sysfs during a narrow time
window.
The issue occurs during module load: the module parameter is registered
and its sysfs file becomes readable before the kvm_mmu_x86_module_init()
function runs:
1. Module load begins, static variable initialized to -1
2. mod_sysfs_setup() creates /sys/module/kvm/parameters/nx_huge_pages
3. (Parameter readable, value = -1)
4. do_init_module() runs kvm_x86_init()
5. kvm_mmu_x86_module_init() resolves -1 to bool
If userspace (e.g., sos report) reads the parameter during step 3,
param_get_bool() dereferences the int as a bool, triggering the UBSAN
warning.
Fix that by properly reading and converting the -1 value into an 'auto'
string.
Fixes: b8e8c8303ff2 ("kvm: mmu: ITLB_MULTIHIT mitigation")
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Gal Pressman <gal@nvidia.com>
Link: https://patch.msgid.link/20260225145050.2350278-3-gal@nvidia.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'rust/kernel/interop/git@git.tavy.me:linux-stable.git')
0 files changed, 0 insertions, 0 deletions
