diff options
Diffstat (limited to 'arch/x86_64/kernel/setup.c')
-rw-r--r-- | arch/x86_64/kernel/setup.c | 10 |
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 | */ |
97 | struct drive_info_struct { char dummy[32]; } drive_info; | ||
98 | struct screen_info screen_info; | 97 | struct screen_info screen_info; |
99 | struct sys_desc_table_struct { | 98 | struct 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) | |||
877 | static int __init init_amd(struct cpuinfo_x86 *c) | 875 | static 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) { |