lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440803200044g54617517k4530db76ebe2cabb@mail.gmail.com>
Date:	Thu, 20 Mar 2008 00:44:37 -0700
From:	"Yinghai Lu" <yhlu.kernel@...il.com>
To:	"Ravikiran G Thirumalai" <kiran@...lex86.org>
Cc:	"Andrew Morton" <akpm@...ux-foundation.org>,
	"Ingo Molnar" <mingo@...e.hu>, linux-kernel@...r.kernel.org,
	"Glauber de Oliveira Costa" <gcosta@...hat.com>,
	"Andi Kleen" <ak@...e.de>, shai@...lex86.org
Subject: Re: [patch 1/4] x86: vSMP: Fix is_vsmp_box()

On Thu, Mar 20, 2008 at 12:39 AM, Ravikiran G Thirumalai
<kiran@...lex86.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@...lex86.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

or
              (PCI_VENDOR_ID_SCALEMP || (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16)))
should be
            (PCI_VENDOR_ID_SCALEMP | (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16)))

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ