aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/pci/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/pci/common.c')
-rw-r--r--arch/x86/pci/common.c27
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
25unsigned int pci_early_dump_regs; 25unsigned int pci_early_dump_regs;
26static int pci_bf_sort; 26static int pci_bf_sort;
27static int smbios_type_b1_flag;
28int pci_routeirq; 27int pci_routeirq;
29int noioapicquirk; 28int 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)
197static void __init read_dmi_type_b1(const struct dmi_header *dm, 196static 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
219static int __init find_sort_method(const struct dmi_system_id *d) 207static 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/*