aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/kernel/setup.c')
-rw-r--r--arch/x86_64/kernel/setup.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c
index 28895c03cb11..9435ab7d6fb8 100644
--- a/arch/x86_64/kernel/setup.c
+++ b/arch/x86_64/kernel/setup.c
@@ -94,7 +94,6 @@ unsigned long saved_video_mode;
94/* 94/*
95 * Setup options 95 * Setup options
96 */ 96 */
97struct drive_info_struct { char dummy[32]; } drive_info;
98struct screen_info screen_info; 97struct screen_info screen_info;
99struct sys_desc_table_struct { 98struct sys_desc_table_struct {
100 unsigned short length; 99 unsigned short length;
@@ -572,7 +571,6 @@ void __init setup_arch(char **cmdline_p)
572 unsigned long kernel_end; 571 unsigned long kernel_end;
573 572
574 ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV); 573 ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV);
575 drive_info = DRIVE_INFO;
576 screen_info = SCREEN_INFO; 574 screen_info = SCREEN_INFO;
577 edid_info = EDID_INFO; 575 edid_info = EDID_INFO;
578 saved_video_mode = SAVED_VIDEO_MODE; 576 saved_video_mode = SAVED_VIDEO_MODE;
@@ -741,7 +739,7 @@ void __init setup_arch(char **cmdline_p)
741 e820_setup_gap(); 739 e820_setup_gap();
742 740
743#ifdef CONFIG_GART_IOMMU 741#ifdef CONFIG_GART_IOMMU
744 iommu_hole_init(); 742 iommu_hole_init();
745#endif 743#endif
746 744
747#ifdef CONFIG_VT 745#ifdef CONFIG_VT
@@ -877,6 +875,7 @@ static void __init amd_detect_cmp(struct cpuinfo_x86 *c)
877static int __init init_amd(struct cpuinfo_x86 *c) 875static int __init init_amd(struct cpuinfo_x86 *c)
878{ 876{
879 int r; 877 int r;
878 unsigned level;
880 879
881#ifdef CONFIG_SMP 880#ifdef CONFIG_SMP
882 unsigned long value; 881 unsigned long value;
@@ -899,6 +898,11 @@ static int __init init_amd(struct cpuinfo_x86 *c)
899 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway */ 898 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway */
900 clear_bit(0*32+31, &c->x86_capability); 899 clear_bit(0*32+31, &c->x86_capability);
901 900
901 /* On C+ stepping K8 rep microcode works well for copy/memset */
902 level = cpuid_eax(1);
903 if (c->x86 == 15 && ((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58))
904 set_bit(X86_FEATURE_REP_GOOD, &c->x86_capability);
905
902 r = get_model_name(c); 906 r = get_model_name(c);
903 if (!r) { 907 if (!r) {
904 switch (c->x86) { 908 switch (c->x86) {