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>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
                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;