diff options
| -rw-r--r-- | arch/x86/kernel/microcode_amd.c | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c index e68e723490a3..2e8af6ef3da9 100644 --- a/arch/x86/kernel/microcode_amd.c +++ b/arch/x86/kernel/microcode_amd.c | |||
| @@ -108,7 +108,6 @@ static int collect_cpu_info_amd(int cpu, struct cpu_signature *csig) | |||
| 108 | static int get_matching_microcode(int cpu, void *mc, int rev) | 108 | static int get_matching_microcode(int cpu, void *mc, int rev) |
| 109 | { | 109 | { |
| 110 | struct microcode_header_amd *mc_header = mc; | 110 | struct microcode_header_amd *mc_header = mc; |
| 111 | struct pci_dev *nb_pci_dev, *sb_pci_dev; | ||
| 112 | unsigned int current_cpu_id; | 111 | unsigned int current_cpu_id; |
| 113 | unsigned int equiv_cpu_id = 0x00; | 112 | unsigned int equiv_cpu_id = 0x00; |
| 114 | unsigned int i = 0; | 113 | unsigned int i = 0; |
| @@ -137,32 +136,11 @@ static int get_matching_microcode(int cpu, void *mc, int rev) | |||
| 137 | return 0; | 136 | return 0; |
| 138 | } | 137 | } |
| 139 | 138 | ||
| 140 | /* ucode may be northbridge specific */ | 139 | /* ucode might be chipset specific -- currently we don't support this */ |
| 141 | if (mc_header->nb_dev_id) { | 140 | if (mc_header->nb_dev_id || mc_header->sb_dev_id) { |
| 142 | nb_pci_dev = pci_get_device(PCI_VENDOR_ID_AMD, | 141 | printk(KERN_WARNING "microcode: CPU%d loading of chipset " |
| 143 | (mc_header->nb_dev_id & 0xff), | 142 | "specific code not yet supported\n", cpu); |
| 144 | NULL); | 143 | return 0; |
| 145 | if ((!nb_pci_dev) || | ||
| 146 | (mc_header->nb_rev_id != nb_pci_dev->revision)) { | ||
| 147 | printk(KERN_ERR "microcode: CPU%d NB mismatch\n", cpu); | ||
| 148 | pci_dev_put(nb_pci_dev); | ||
| 149 | return 0; | ||
| 150 | } | ||
| 151 | pci_dev_put(nb_pci_dev); | ||
| 152 | } | ||
| 153 | |||
| 154 | /* ucode may be southbridge specific */ | ||
| 155 | if (mc_header->sb_dev_id) { | ||
| 156 | sb_pci_dev = pci_get_device(PCI_VENDOR_ID_AMD, | ||
| 157 | (mc_header->sb_dev_id & 0xff), | ||
| 158 | NULL); | ||
| 159 | if ((!sb_pci_dev) || | ||
| 160 | (mc_header->sb_rev_id != sb_pci_dev->revision)) { | ||
| 161 | printk(KERN_ERR "microcode: CPU%d SB mismatch\n", cpu); | ||
| 162 | pci_dev_put(sb_pci_dev); | ||
| 163 | return 0; | ||
| 164 | } | ||
| 165 | pci_dev_put(sb_pci_dev); | ||
| 166 | } | 144 | } |
| 167 | 145 | ||
| 168 | if (mc_header->patch_id <= rev) | 146 | if (mc_header->patch_id <= rev) |
