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    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site