lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 13 Jun 2008 08:55:24 +0200
From:	Andreas Herrmann <andreas.herrmann3@....com>
To:	Thomas Gleixner <tglx@...utronix.de>
Cc:	LKML <linux-kernel@...r.kernel.org>, Ingo Molnar <mingo@...e.hu>,
	Arjan van de Veen <arjan@...radead.org>
Subject: Re: [patch 3/6] x86: use cpuinfo to check for interrupt pending
	message msr

On Thu, Jun 12, 2008 at 10:28:47AM -0000, Thomas Gleixner wrote:
> No need to do a cpuid(1) again. The cpuinfo structure has all
> necessary information already.
> 
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> Cc: Andreas Herrmann <andreas.herrmann3@....com>
> 
> ---
>  arch/x86/kernel/cpu/amd.c  |   41 +++++++++++++++--------------------------
>  arch/x86/kernel/setup_64.c |   38 +++++++++++++++-----------------------
>  2 files changed, 30 insertions(+), 49 deletions(-)
> 
> Index: linux-2.6/arch/x86/kernel/cpu/amd.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/cpu/amd.c
> +++ linux-2.6/arch/x86/kernel/cpu/amd.c
> @@ -25,35 +25,24 @@ extern void vide(void);
>  __asm__(".align 4\nvide: ret");
>  
>  #ifdef CONFIG_X86_LOCAL_APIC
> -#define CPUID_PROCESSOR_SIGNATURE       1
> -#define CPUID_XFAM              0x0ff00000
> -#define CPUID_XFAM_K8           0x00000000
> -#define CPUID_XFAM_10H          0x00100000
> -#define CPUID_XFAM_11H          0x00200000
> -#define CPUID_XMOD              0x000f0000
> -#define CPUID_XMOD_REV_F        0x00040000
>  
>  /* AMD systems with C1E don't have a working lAPIC timer. Check for that. */
> -static __cpuinit int amd_apic_timer_broken(void)
> +static __cpuinit int amd_apic_timer_broken(struct cpuinfo_x86 *c)
>  {
>  	u32 lo, hi;
> -	u32 eax = cpuid_eax(CPUID_PROCESSOR_SIGNATURE);
> -	switch (eax & CPUID_XFAM) {
> -	case CPUID_XFAM_K8:
> -		if ((eax & CPUID_XMOD) < CPUID_XMOD_REV_F)
> -			break;
> -	case CPUID_XFAM_10H:
> -	case CPUID_XFAM_11H:
> -		rdmsr(MSR_K8_INT_PENDING_MSG, lo, hi);
> -		if (lo & K8_INTP_C1E_ACTIVE_MASK) {
> -			if (smp_processor_id() != boot_cpu_physical_apicid)
> -				printk(KERN_INFO "AMD C1E detected late. "
> -				       "	Force timer broadcast.\n");
> -			return 1;
> -		}
> -		break;
> -	default:
> -		/* err on the side of caution */
> +
> +	if (c->x86 < 0x0F)
> +		return 0;
> +
> +	/* Family 0x0f models < rev F do not have this MSR */
> +	if (c->x86 == 0x0f && c->x86_model < 0x40)
> +		return 0;

Just some minor nitpicking.
Older AMD family 0xf CPUs have this Interrupt Pending Message
Register. But they do not support C1E and thus bits 27 and 28 of this
MSR are reserved.


Andreas


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ