diff options
Diffstat (limited to 'arch/x86/pci/common.c')
-rw-r--r-- | arch/x86/pci/common.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 190e718694b1..1f9f2ee7c421 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c | |||
@@ -24,7 +24,6 @@ unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | | |||
24 | 24 | ||
25 | unsigned int pci_early_dump_regs; | 25 | unsigned int pci_early_dump_regs; |
26 | static int pci_bf_sort; | 26 | static int pci_bf_sort; |
27 | static int smbios_type_b1_flag; | ||
28 | int pci_routeirq; | 27 | int pci_routeirq; |
29 | int noioapicquirk; | 28 | int noioapicquirk; |
30 | #ifdef CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS | 29 | #ifdef CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS |
@@ -197,34 +196,18 @@ static int __init set_bf_sort(const struct dmi_system_id *d) | |||
197 | static void __init read_dmi_type_b1(const struct dmi_header *dm, | 196 | static void __init read_dmi_type_b1(const struct dmi_header *dm, |
198 | void *private_data) | 197 | void *private_data) |
199 | { | 198 | { |
200 | u8 *d = (u8 *)dm + 4; | 199 | u8 *data = (u8 *)dm + 4; |
201 | 200 | ||
202 | if (dm->type != 0xB1) | 201 | if (dm->type != 0xB1) |
203 | return; | 202 | return; |
204 | switch (((*(u32 *)d) >> 9) & 0x03) { | 203 | if ((((*(u32 *)data) >> 9) & 0x03) == 0x01) |
205 | case 0x00: | 204 | set_bf_sort((const struct dmi_system_id *)private_data); |
206 | printk(KERN_INFO "dmi type 0xB1 record - unknown flag\n"); | ||
207 | break; | ||
208 | case 0x01: /* set pci=bfsort */ | ||
209 | smbios_type_b1_flag = 1; | ||
210 | break; | ||
211 | case 0x02: /* do not set pci=bfsort */ | ||
212 | smbios_type_b1_flag = 2; | ||
213 | break; | ||
214 | default: | ||
215 | break; | ||
216 | } | ||
217 | } | 205 | } |
218 | 206 | ||
219 | static int __init find_sort_method(const struct dmi_system_id *d) | 207 | static int __init find_sort_method(const struct dmi_system_id *d) |
220 | { | 208 | { |
221 | dmi_walk(read_dmi_type_b1, NULL); | 209 | dmi_walk(read_dmi_type_b1, (void *)d); |
222 | 210 | return 0; | |
223 | if (smbios_type_b1_flag == 1) { | ||
224 | set_bf_sort(d); | ||
225 | return 0; | ||
226 | } | ||
227 | return -1; | ||
228 | } | 211 | } |
229 | 212 | ||
230 | /* | 213 | /* |