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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Fri, 23 May 2008 15:13:05 +0200
From:	Pavel Machek <pavel@....cz>
To:	Dave Jones <davej@...hat.com>
Cc:	Linux Kernel <linux-kernel@...r.kernel.org>,
	Ingo Molnar <mingo@...e.hu>,
	Thomas Gleixner <tglx@...utronix.de>, hpa@...or.com
Subject: Re: [X86] Move the 64-bit Centaur specific parts out of setup_64.c

Hi!

> Create a separate centaur_64.c file in the cpu/ dir for
> the useful parts to live in.
> 
> Signed-off-by: Dave Jones <davej@...hat.com>
> ---
>  arch/x86/kernel/cpu/Makefile     |    1 +
>  arch/x86/kernel/cpu/centaur_64.c |   28 ++++++++++++++++++++++++++++
>  arch/x86/kernel/setup_64.c       |   29 ++---------------------------
>  3 files changed, 31 insertions(+), 27 deletions(-)
>  create mode 100644 arch/x86/kernel/cpu/centaur_64.c
> 
> diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
> index b7a1192..c77a1c5 100644
> --- a/arch/x86/kernel/cpu/Makefile
> +++ b/arch/x86/kernel/cpu/Makefile
> @@ -10,6 +10,7 @@ obj-$(CONFIG_X86_32)	+= amd.o
>  obj-$(CONFIG_X86_64)	+= amd_64.o
>  obj-$(CONFIG_X86_32)	+= cyrix.o
>  obj-$(CONFIG_X86_32)	+= centaur.o
> +obj-$(CONFIG_X86_64)	+= centaur_64.o
>  obj-$(CONFIG_X86_32)	+= transmeta.o
>  obj-$(CONFIG_X86_32)	+= intel.o
>  obj-$(CONFIG_X86_64)	+= intel_64.o
> diff --git a/arch/x86/kernel/cpu/centaur_64.c b/arch/x86/kernel/cpu/centaur_64.c
> new file mode 100644
> index 0000000..08e07b5
> --- /dev/null
> +++ b/arch/x86/kernel/cpu/centaur_64.c
> @@ -0,0 +1,28 @@
> +#include <linux/init.h>
> +#include <linux/smp.h>
> +
> +void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
> +{
> +	if (c->x86 == 0x6 && c->x86_model >= 0xf)
> +		set_bit(X86_FEATURE_CONSTANT_TSC, &c->x86_capability);
> +}
> +
> +void __cpuinit init_centaur(struct cpuinfo_x86 *c)
> +{
> +	/* Cache sizes */
> +	unsigned n;
> +
> +	n = c->extended_cpuid_level;
> +	if (n >= 0x80000008) {
> +		unsigned eax = cpuid_eax(0x80000008);
> +		c->x86_virt_bits = (eax >> 8) & 0xff;
> +		c->x86_phys_bits = eax & 0xff;
> +	}
> +
> +	if (c->x86 == 0x6 && c->x86_model >= 0xf) {
> +		c->x86_cache_alignment = c->x86_clflush_size * 2;
> +		set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> +		set_cpu_cap(c, X86_FEATURE_REP_GOOD);
> +	}
> +	set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
> +}
> diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
> index b3d25d6..9159f85 100644
> --- a/arch/x86/kernel/setup_64.c
> +++ b/arch/x86/kernel/setup_64.c
> @@ -614,33 +614,6 @@ out:
>  #endif
>  }
>  
> -
> -static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
> -{
> -	if (c->x86 == 0x6 && c->x86_model >= 0xf)
> -		set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> -}
> -
> -static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
> -{
> -	/* Cache sizes */
> -	unsigned n;
> -
> -	n = c->extended_cpuid_level;
> -	if (n >= 0x80000008) {
> -		unsigned eax = cpuid_eax(0x80000008);
> -		c->x86_virt_bits = (eax >> 8) & 0xff;
> -		c->x86_phys_bits = eax & 0xff;
> -	}
> -
> -	if (c->x86 == 0x6 && c->x86_model >= 0xf) {
> -		c->x86_cache_alignment = c->x86_clflush_size * 2;
> -		set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
> -		set_cpu_cap(c, X86_FEATURE_REP_GOOD);
> -	}
> -	set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
> -}
> -
>  static void __cpuinit get_cpu_vendor(struct cpuinfo_x86 *c)

Are there 64-bit capable centaurs? Wow...
							Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
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