diff options
| author | Marshall Mohror <mohror64@gmail.com> | 2022-07-06 13:00:00 -0500 |
|---|---|---|
| committer | Marshall Mohror <mohror64@gmail.com> | 2022-07-06 13:00:00 -0500 |
| commit | cbadd75878003e854f8f96ed47fc82efe49933b6 (patch) | |
| tree | 535a7a3ddd28e3a98f5984e0730277cd74850cea /src/common/x64/cpu_detect.cpp | |
| parent | b37f669584455dac5ccd108eaab0facd6686e385 (diff) | |
guard against div-by-zero
Diffstat (limited to 'src/common/x64/cpu_detect.cpp')
| -rw-r--r-- | src/common/x64/cpu_detect.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/common/x64/cpu_detect.cpp b/src/common/x64/cpu_detect.cpp index 4230b2da6f..1a27532d45 100644 --- a/src/common/x64/cpu_detect.cpp +++ b/src/common/x64/cpu_detect.cpp @@ -170,8 +170,11 @@ static CPUCaps Detect() { // The CPU model can be detected to use the values from turbostat // https://github.com/torvalds/linux/blob/master/tools/power/x86/turbostat/turbostat.c#L5569 // but it's easier to just estimate the TSC tick rate for these cases. - caps.tsc_frequency = static_cast<u64>(caps.crystal_frequency) * - caps.tsc_crystal_ratio_numerator / caps.tsc_crystal_ratio_denominator; + if (caps.tsc_crystal_ratio_denominator) { + caps.tsc_frequency = static_cast<u64>(caps.crystal_frequency) * + caps.tsc_crystal_ratio_numerator / + caps.tsc_crystal_ratio_denominator; + } } if (max_std_fn >= 0x16) { |
