lkml.org 
[lkml]   [2008]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 1/4] x86: vSMP: Fix is_vsmp_box()
    On Thu, Mar 20, 2008 at 12:44:37AM -0700, Yinghai Lu wrote:
    >On Thu, Mar 20, 2008 at 12:39 AM, Ravikiran G Thirumalai
    ><kiran@scalex86.org> wrote:
    >> 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;
    >
    >why read two times
    >

    Well, the pci cfg space read happens just _once_ during the boot, as
    the result is cached in a static flag. The above code is better readable.
    So readability is better than micro-optimization here.

    Thanks,
    Kiran


    \
     
     \ /
      Last update: 2008-03-20 19:43    [W:0.023 / U:189.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site