x86: Fix incorrect scope of setting shared_per_thread [BZ# 30745]

The:

```
    if (shared_per_thread > 0 && threads > 0)
      shared_per_thread /= threads;
```

Code was accidentally moved to inside the else scope.  This doesn't
match how it was previously (before af992e7abd).

This patch fixes that by putting the division after the `else` block.

(cherry picked from commit 084fb31bc2)
This commit is contained in:
Noah Goldstein 2023-08-11 18:48:01 -05:00
parent 01a8874eba
commit 9f27ef8090

View File

@ -679,18 +679,19 @@ init_cacheinfo (void)
}
else
{
intel_bug_no_cache_info:
intel_bug_no_cache_info:
/* Assume that all logical threads share the highest cache
level. */
threads = ((cpu_features->cpuid[COMMON_CPUID_INDEX_1].ebx >> 16)
& 0xff);
/* Cap usage of highest cache level to the number of supported
threads. */
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
threads
= ((cpu_features->cpuid[COMMON_CPUID_INDEX_1].ebx
>> 16) & 0xff);
}
/* Cap usage of highest cache level to the number of supported
threads. */
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
}
/* Account for non-inclusive L2 and L3 caches. */