diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2024-12-24 16:59:12 +0100 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2025-01-10 23:34:44 +0100 |
| commit | d662b66da4bef9272144f7b79715aad90cdbc33e (patch) | |
| tree | a68555e415b45398e401cb2a2f57d56335a2cad0 | |
| parent | d2401a6eae8f8fbd8e569c8b0638f0cbc80ec88e (diff) | |
| download | focaccia-qemu-d662b66da4bef9272144f7b79715aad90cdbc33e.tar.gz focaccia-qemu-d662b66da4bef9272144f7b79715aad90cdbc33e.zip | |
target/i386/kvm: Replace ARRAY_SIZE(msr_handlers) with KVM_MSR_FILTER_MAX_RANGES
kvm_install_msr_filters() uses KVM_MSR_FILTER_MAX_RANGES as the bound when traversing msr_handlers[], while other places still compute the size by ARRAY_SIZE(msr_handlers). In fact, msr_handlers[] is an array with the fixed size KVM_MSR_FILTER_MAX_RANGES, and this has to be true because kvm_install_msr_filters copies from one array to the other. For code consistency, assert that they match and use ARRAY_SIZE(msr_handlers) everywehere. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| -rw-r--r-- | target/i386/kvm/kvm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 6f424774b3..1d7214b6a6 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -5854,7 +5854,8 @@ static int kvm_install_msr_filters(KVMState *s) }; int i, j = 0; - for (i = 0; i < KVM_MSR_FILTER_MAX_RANGES; i++) { + QEMU_BUILD_BUG_ON(ARRAY_SIZE(msr_handlers) != ARRAY_SIZE(filter.ranges)); + for (i = 0; i < ARRAY_SIZE(msr_handlers); i++) { KVMMSRHandlers *handler = &msr_handlers[i]; if (handler->msr) { struct kvm_msr_filter_range *range = &filter.ranges[j++]; |