Messages in this thread Patch in this message |  | | | Date | Thu, 20 Mar 2008 00:39:02 -0700 | | From | Ravikiran G Thirumalai <> | | Subject | [patch 1/4] x86: vSMP: Fix is_vsmp_box() | |
is_vsmp_box() currently does not work on vSMPowered systems, as pci cfg
space is not read correctly -- This patch fixes it.
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Index: linux.git.trees/arch/x86/kernel/vsmp_64.c
===================================================================
--- linux.git.trees.orig/arch/x86/kernel/vsmp_64.c 2008-03-19 13:30:35.116766719 -0700
+++ linux.git.trees/arch/x86/kernel/vsmp_64.c 2008-03-19 13:39:20.074685590 -0700
@@ -84,8 +84,10 @@ int is_vsmp_box(void)
return vsmp;
/* Check if we are running on a ScaleMP vSMP box */
- if (read_pci_config(0, 0x1f, 0, PCI_VENDOR_ID) ==
- (PCI_VENDOR_ID_SCALEMP || (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16)))
+ 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))
vsmp = 1;
return vsmp;
|  |