Linux Audio

Check our new training course

Loading...
v4.6
 1/*
 2 *  Copyright (C) 1994  Linus Torvalds
 3 *
 4 *  Cyrix stuff, June 1998 by:
 5 *	- Rafael R. Reilova (moved everything from head.S),
 6 *        <rreilova@ececs.uc.edu>
 7 *	- Channing Corn (tests & fixes),
 8 *	- Andrew D. Balsa (code cleanup).
 9 */
10#include <linux/init.h>
11#include <linux/utsname.h>
12#include <asm/bugs.h>
13#include <asm/processor.h>
14#include <asm/processor-flags.h>
15#include <asm/fpu/internal.h>
16#include <asm/msr.h>
17#include <asm/paravirt.h>
18#include <asm/alternative.h>
 
 
19
20void __init check_bugs(void)
21{
22	identify_boot_cpu();
23#ifndef CONFIG_SMP
24	pr_info("CPU: ");
25	print_cpu_info(&boot_cpu_data);
26#endif
27
 
 
 
 
 
 
28	/*
29	 * Check whether we are able to run this kernel safely on SMP.
30	 *
31	 * - i386 is no longer supported.
32	 * - In order to run on anything without a TSC, we need to be
33	 *   compiled for a i486.
34	 */
35	if (boot_cpu_data.x86 < 4)
36		panic("Kernel requires i486+ for 'invlpg' and other features");
37
38	init_utsname()->machine[1] =
39		'0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
40	alternative_instructions();
41
42	fpu__init_check_bugs();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43}
v4.10.11
 1/*
 2 *  Copyright (C) 1994  Linus Torvalds
 3 *
 4 *  Cyrix stuff, June 1998 by:
 5 *	- Rafael R. Reilova (moved everything from head.S),
 6 *        <rreilova@ececs.uc.edu>
 7 *	- Channing Corn (tests & fixes),
 8 *	- Andrew D. Balsa (code cleanup).
 9 */
10#include <linux/init.h>
11#include <linux/utsname.h>
12#include <asm/bugs.h>
13#include <asm/processor.h>
14#include <asm/processor-flags.h>
15#include <asm/fpu/internal.h>
16#include <asm/msr.h>
17#include <asm/paravirt.h>
18#include <asm/alternative.h>
19#include <asm/pgtable.h>
20#include <asm/cacheflush.h>
21
22void __init check_bugs(void)
23{
24	identify_boot_cpu();
 
 
 
 
25
26	if (!IS_ENABLED(CONFIG_SMP)) {
27		pr_info("CPU: ");
28		print_cpu_info(&boot_cpu_data);
29	}
30
31#ifdef CONFIG_X86_32
32	/*
33	 * Check whether we are able to run this kernel safely on SMP.
34	 *
35	 * - i386 is no longer supported.
36	 * - In order to run on anything without a TSC, we need to be
37	 *   compiled for a i486.
38	 */
39	if (boot_cpu_data.x86 < 4)
40		panic("Kernel requires i486+ for 'invlpg' and other features");
41
42	init_utsname()->machine[1] =
43		'0' + (boot_cpu_data.x86 > 6 ? 6 : boot_cpu_data.x86);
44	alternative_instructions();
45
46	fpu__init_check_bugs();
47#else /* CONFIG_X86_64 */
48	alternative_instructions();
49
50	/*
51	 * Make sure the first 2MB area is not mapped by huge pages
52	 * There are typically fixed size MTRRs in there and overlapping
53	 * MTRRs into large pages causes slow downs.
54	 *
55	 * Right now we don't do that with gbpages because there seems
56	 * very little benefit for that case.
57	 */
58	if (!direct_gbpages)
59		set_memory_4k((unsigned long)__va(0), 1);
60#endif
61}