2007-05-03 01:27:12 +08:00
|
|
|
/*
|
|
|
|
* Copyright (C) 1994 Linus Torvalds
|
|
|
|
* Copyright (C) 2000 SuSE
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <linux/kernel.h>
|
2007-05-03 01:27:16 +08:00
|
|
|
#include <linux/init.h>
|
2007-05-03 01:27:12 +08:00
|
|
|
#include <asm/alternative.h>
|
2007-07-31 15:39:21 +08:00
|
|
|
#include <asm/bugs.h>
|
2007-05-03 01:27:12 +08:00
|
|
|
#include <asm/processor.h>
|
2007-05-12 23:27:40 +08:00
|
|
|
#include <asm/mtrr.h>
|
2008-03-12 10:53:30 +08:00
|
|
|
#include <asm/cacheflush.h>
|
2007-05-03 01:27:12 +08:00
|
|
|
|
|
|
|
void __init check_bugs(void)
|
|
|
|
{
|
2008-03-20 01:25:03 +08:00
|
|
|
identify_boot_cpu();
|
2007-05-03 01:27:12 +08:00
|
|
|
#if !defined(CONFIG_SMP)
|
2009-07-04 07:35:45 +08:00
|
|
|
printk(KERN_INFO "CPU: ");
|
2007-05-03 01:27:12 +08:00
|
|
|
print_cpu_info(&boot_cpu_data);
|
|
|
|
#endif
|
|
|
|
alternative_instructions();
|
2008-03-12 10:53:30 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Make sure the first 2MB area is not mapped by huge pages
|
|
|
|
* There are typically fixed size MTRRs in there and overlapping
|
|
|
|
* MTRRs into large pages causes slow downs.
|
|
|
|
*
|
|
|
|
* Right now we don't do that with gbpages because there seems
|
|
|
|
* very little benefit for that case.
|
|
|
|
*/
|
|
|
|
if (!direct_gbpages)
|
|
|
|
set_memory_4k((unsigned long)__va(0), 1);
|
2007-05-03 01:27:12 +08:00
|
|
|
}
|