x86: vsmp fix x86 vsmp fix is vsmp box cleanup
code got a bit smaller:
arch/x86/kernel/vsmp_64.o:
text data bss dec hex filename
205 4 0 209 d1 vsmp_64.o.before
181 4 0 185 b9 vsmp_64.o.after
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index 13bd824..1e9a791 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -120,10 +120,8 @@
return vsmp;
/* Check if we are running on a ScaleMP vSMP box */
- if ((read_pci_config_16(0, 0x1f, 0, PCI_VENDOR_ID) ==
- PCI_VENDOR_ID_SCALEMP) &&
- (read_pci_config_16(0, 0x1f, 0, PCI_DEVICE_ID) ==
- PCI_DEVICE_ID_SCALEMP_VSMP_CTL))
+ if (read_pci_config(0, 0x1f, 0, PCI_VENDOR_ID) ==
+ (PCI_VENDOR_ID_SCALEMP | (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16)))
vsmp = 1;
return vsmp;