X86: Don't assert on older Intel CPUs [BZ #20647]

Since the maximum CPUID level of older Intel CPUs is 1, change
handle_intel to return -1, instead of assert, when the maximum
CPUID level is less than 2.

	[BZ #20647]
	* sysdeps/x86/cacheinfo.c (handle_intel): Return -1 if the
	maximum CPUID level is less than 2.
This commit is contained in:
H.J. Lu 2016-10-12 08:22:52 -07:00
parent 5e9d98a3d9
commit 6a824767d8
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-10-12 H.J. Lu <hongjiu.lu@intel.com>
[BZ #20647]
* sysdeps/x86/cacheinfo.c (handle_intel): Return -1 if the
maximum CPUID level is less than 2.
2016-10-12 Joseph Myers <joseph@codesourcery.com>
* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]

View File

@ -259,7 +259,9 @@ intel_check_word (int name, unsigned int value, bool *has_level_2,
static long int __attribute__ ((noinline))
handle_intel (int name, unsigned int maxidx)
{
assert (maxidx >= 2);
/* Return -1 for older CPUs. */
if (maxidx < 2)
return -1;
/* OK, we can use the CPUID instruction to get all info about the
caches. */