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

Commit 73fa1362 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'x86/cpu' into x86/mm, before applying dependent patch



Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents fdd3d8ce 6415813b
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ extern u16 __read_mostly tlb_lld_1g[NR_INFO];

/*
 *  CPU type and hardware bug flags. Kept separately for each CPU.
 *  Members of this structure are referenced in head.S, so think twice
 *  Members of this structure are referenced in head_32.S, so think twice
 *  before touching them. [mj]
 */

@@ -89,14 +89,7 @@ struct cpuinfo_x86 {
	__u8			x86_vendor;	/* CPU vendor */
	__u8			x86_model;
	__u8			x86_mask;
#ifdef CONFIG_X86_32
	char			wp_works_ok;	/* It doesn't on 386's */

	/* Problems on some 486Dx4's and old 386's: */
	char			rfu;
	char			pad0;
	char			pad1;
#else
#ifdef CONFIG_X86_64
	/* Number of 4K pages in DTLB/ITLB combined(in pages): */
	int			x86_tlbsize;
#endif
+2 −3
Original line number Diff line number Diff line
@@ -31,14 +31,13 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
		   "fpu\t\t: %s\n"
		   "fpu_exception\t: %s\n"
		   "cpuid level\t: %d\n"
		   "wp\t\t: %s\n",
		   "wp\t\t: yes\n",
		   static_cpu_has_bug(X86_BUG_FDIV) ? "yes" : "no",
		   static_cpu_has_bug(X86_BUG_F00F) ? "yes" : "no",
		   static_cpu_has_bug(X86_BUG_COMA) ? "yes" : "no",
		   static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no",
		   static_cpu_has(X86_FEATURE_FPU) ? "yes" : "no",
		   c->cpuid_level,
		   c->wp_works_ok ? "yes" : "no");
		   c->cpuid_level);
}
#else
static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
+4 −7
Original line number Diff line number Diff line
@@ -173,14 +173,11 @@ static struct resource bss_resource = {


#ifdef CONFIG_X86_32
/* cpu data as detected by the assembly code in head.S */
struct cpuinfo_x86 new_cpu_data = {
	.wp_works_ok = -1,
};
/* cpu data as detected by the assembly code in head_32.S */
struct cpuinfo_x86 new_cpu_data;

/* common cpu data for all cpus */
struct cpuinfo_x86 boot_cpu_data __read_mostly = {
	.wp_works_ok = -1,
};
struct cpuinfo_x86 boot_cpu_data __read_mostly;
EXPORT_SYMBOL(boot_cpu_data);

unsigned int def_to_bigsmp;
+5 −4
Original line number Diff line number Diff line
@@ -726,15 +726,17 @@ void __init paging_init(void)
 */
static void __init test_wp_bit(void)
{
	int wp_works_ok;

	printk(KERN_INFO
  "Checking if this processor honours the WP bit even in supervisor mode...");

	/* Any page-aligned address will do, the test is non-destructive */
	__set_fixmap(FIX_WP_TEST, __pa(&swapper_pg_dir), PAGE_KERNEL_RO);
	boot_cpu_data.wp_works_ok = do_test_wp_bit();
	wp_works_ok = do_test_wp_bit();
	clear_fixmap(FIX_WP_TEST);

	if (!boot_cpu_data.wp_works_ok) {
	if (!wp_works_ok) {
		printk(KERN_CONT "No.\n");
		panic("Linux doesn't support CPUs with broken WP.");
	} else {
@@ -821,7 +823,6 @@ void __init mem_init(void)
	BUG_ON(VMALLOC_START				>= VMALLOC_END);
	BUG_ON((unsigned long)high_memory		> VMALLOC_START);

	if (boot_cpu_data.wp_works_ok < 0)
	test_wp_bit();
}

+0 −1
Original line number Diff line number Diff line
@@ -1595,7 +1595,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
	/* set up basic CPUID stuff */
	cpu_detect(&new_cpu_data);
	set_cpu_cap(&new_cpu_data, X86_FEATURE_FPU);
	new_cpu_data.wp_works_ok = 1;
	new_cpu_data.x86_capability[CPUID_1_EDX] = cpuid_edx(1);
#endif