On Fri, Mar 21, 2008 at 07:58:21PM +0100, Ingo Molnar wrote:OK. Something like this? vSMP detection: Access pci config space early in boot to detect if the system is a vSMPowered box, and cache the result in a flag, so that is_vsmp_box() retrieves the value of the flag always. 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-21 13:15:17.000000000 -0700 +++ linux.git.trees/arch/x86/kernel/vsmp_64.c 2008-03-22 11:58:42.313580356 -0700 @@ -108,25 +108,34 @@ static void __init set_vsmp_pv_ops(void) #endif #ifdef CONFIG_PCI -static int vsmp = -1; +static int is_vsmp = -1; -int is_vsmp_box(void) +static void __init detect_vsmp_box(void) { - if (vsmp != -1) - return vsmp; + is_vsmp = 0; - vsmp = 0; if (!early_pci_allowed()) - return vsmp; + return; - /* Check if we are running on a ScaleMP vSMP box */ + /* Check if we are running on a ScaleMP vSMPowered box */ if (read_pci_config(0, 0x1f, 0, PCI_VENDOR_ID) == (PCI_VENDOR_ID_SCALEMP | (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16))) - vsmp = 1; + is_vsmp = 1; +} - return vsmp; +int is_vsmp_box(void) +{ + if (is_vsmp != -1) + return is_vsmp; + else { + printk("ScaleMP vSMPowered system detection called too early!\n"); + return 0; + } } #else +static int __init detect_vsmp_box(void) +{ +} int is_vsmp_box(void) { return 0; @@ -135,6 +144,7 @@ int is_vsmp_box(void) void __init vsmp_init(void) { + detect_vsmp_box(); if (!is_vsmp_box()) return; --
| Linus Torvalds | Linux 2.6.27-rc8 |
| Rafael J. Wysocki | 2.6.26-rc9-git12: Reported regressions from 2.6.25 |
| Alan Cox | [PATCH 00/76] Queued TTY Patches |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| Shawn O. Pearce | Re: cleaner/better zlib sources? |
| sbejar | Re: Using GIT to store /etc (Or: How to make GIT store all file permission bits) |
| Mark Levedahl | mingw, windows, crlf/lf, and git |
| bain | [Announce] teamGit v0.0.3 |
| Richard Stallman | Real men don't attack straw men |
| Leon Dippenaar | New tcp stack attack |
| Jonathan Thornburg | svnd questions (encrypting all of a partition or disk) |
| Chris Bullock | OpenBSD isakmpd and pf vs Cisco PIX or ASA |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| Dushan Tcholich | Re: ksoftirqd high cpu load on kernels 2.6.24 to 2.6.27-rc1-mm1 |
| Jarek Poplawski | Re: [PATCH] Fix routing tables with id > 255 for legacy software |
| Evgeniy Polyakov | Re: [Bugme-new] [Bug 10556] New: IPVS sync_backup oops |
