Coverity: kvm_hv_flush_tlb(): Uninitialized variables
Subsystems (2)
Hello!
This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221201 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan
You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:
Fri Nov 18 12:59:05 2022 -0500
260970862c88 ("KVM: x86: hyper-v: Handle HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} calls gently")Coverity reported the following:
*** CID 1527764: Uninitialized variables (UNINIT) arch/x86/kvm/hyperv.c:2024 in kvm_hv_flush_tlb()
2018 * Hyper-V TLFS doesn't explicitly forbid non-empty sparse vCPU 2019 * banks (and, thus, non-zero 'var_cnt') for the 'all vCPUs' 2020 * case (HV_GENERIC_SET_ALL). Always adjust data_offset and 2021 * consumed_xmm_halves to make sure TLB flush entries are read 2022 * from the correct offset. 2023 */ vvv CID 1527764: Uninitialized variables (UNINIT) vvv Using uninitialized value "data_offset". 2024 data_offset += hc->var_cnt * sizeof(sparse_banks[0]); 2025 consumed_xmm_halves += hc->var_cnt; 2026 }
2027
2028 if (hc->code == HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE ||
2029 hc->code == HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX ||
If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):
Addresses-Coverity-ID: 1527764 ("Uninitialized variables")
Thanks for your attention!
Signature · 1 line
Coverity-bot
Quoted 27 lines · coverity-bot
Hello!
This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221201 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scanYou're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:
Fri Nov 18 12:59:05 2022 -0500
260970862c88 ("KVM: x86: hyper-v: Handle HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} calls gently")Coverity reported the following:
*** CID 1527764: Uninitialized variables (UNINIT)
arch/x86/kvm/hyperv.c:2024inkvm_hv_flush_tlb()2018 * Hyper-V TLFS doesn't explicitly forbid non-empty sparse vCPU 2019 * banks (and, thus, non-zero 'var_cnt') for the 'all vCPUs' 2020 * case (HV_GENERIC_SET_ALL). Always adjust data_offset and 2021 * consumed_xmm_halves to make sure TLB flush entries are read 2022 * from the correct offset. 2023 */ vvv CID 1527764: Uninitialized variables (UNINIT) vvv Using uninitialized value "data_offset". 2024 data_offset += hc->var_cnt * sizeof(sparse_banks[0]); 2025 consumed_xmm_halves += hc->var_cnt; 2026 }
Quoted 8 lines
2027
2028 if (hc->code==HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE||
2029hc->code==HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX||If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):
Looks half legit) 'data_offset' can only be uninitialized here in 'hc->fast' case but this also means that the only user of 'data_offset' (kvm_hv_get_tlb_flush_entries()) below will not use it. So yes, we do increment an uninitialized variable but we won't use the result. I think we're better off fixing this, even if there's no real issue. I'll send a patch, hopefully tomorrow.
Thanks!
Quoted 6 lines
Reported-by coverity-bot <[email protected]>Addresses-Coverity-ID: 1527764 ("Uninitialized variables")
Fixes 260970862c88 ("KVM: x86: hyper-v: Handle HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST{,EX} calls gently")Thanks for your attention!
Signature · 1 line
Vitaly