Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3a22a26 authored by Borislav Petkov's avatar Borislav Petkov Committed by H. Peter Anvin
Browse files

x86, head_32: Remove second CPUID detection from default_entry



We do that once earlier now and cache it into new_cpu_data.cpuid_level
so no need for the EFLAGS.ID toggling dance anymore.

Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1360592538-10643-4-git-send-email-bp@alien8.de


Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent 9efb58de
Loading
Loading
Loading
Loading
+4 −13
Original line number Diff line number Diff line
@@ -399,18 +399,7 @@ default_entry:
/*
 * Check if it is 486
 */
	movl $-1,X86_CPUID	# -1 for no CPUID initially
	movb $4,X86		# at least 486
	pushfl			# push EFLAGS
	popl %eax		# get EFLAGS
	movl %eax,%ecx		# save original EFLAGS
	xorl $0x200000,%eax	# flip ID bit in EFLAGS
	pushl %eax		# copy to EFLAGS
	popfl			# set EFLAGS
	pushfl			# get new EFLAGS
	popl %eax		# put it in eax
	xorl %ecx,%eax		# change in flags
	testl $0x200000,%eax	# check if ID bit changed
	cmpl $-1,X86_CPUID
	je is486

	/* get vendor info */
@@ -436,7 +425,9 @@ default_entry:
	movb %cl,X86_MASK
	movl %edx,X86_CAPABILITY

is486:	movl $0x50022,%ecx	# set AM, WP, NE and MP
is486:
	movb $4,X86
	movl $0x50022,%ecx	# set AM, WP, NE and MP
	movl %cr0,%eax
	andl $0x80000011,%eax	# Save PG,PE,ET
	orl %ecx,%eax