OpenSolaris

Printable Version Enter a New Search
Bug ID 6667600
Synopsis Incomplete initialization of cpi_cacheinfo field of struct cpuid_info
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:arch-x86
Keywords SFO | oss-sponsor
Sponsor Kuriakose Kuruvilla
Submitter raj
Responsible Engineer Kuriakose Kuruvilla
Reported Against
Duplicate Of
Introduced In
Commit to Fix snv_87
Fixed In snv_87
Release Fixed solaris_nevada(snv_87)
Related Bugs
Submit Date 26-February-2008
Last Update Date 9-April-2008
Description
The following is part of the code used to initialize the cpi_cacheinfo field of each cpuid_info structure.  Here only two bytes from cp_eax are considered instead of three.

file: uts/i86pc/os/cpuid.c
cpuid_pass2(cpu_t *cpu)
{
	...
	if (BITX(cp->cp_eax, 31, 31) == 0) {
		uint8_t *p = (void *)&cp->cp_eax;
		for (i = 1; i < 3; i++)
			if (p[i] != 0)
				*dp++ = p[i];
	}
	...
}

See CPUID.2 values in the Intel instructions specifications for more details.
There is similar code in cpuid.c:intel_cpubrand().  See sections for EAX and EBX registers.
Work Around
N/A
Comments
N/A