2008-03-17 21:33:58

by Glauber Costa

[permalink] [raw]
Subject: [PATCH] vsmp build fixes

VSMP depends on PCI, but the file is now compiled conditionally
on PARAVIRT, no VSMP, so enclose everything in an ifdef CONFIG_PCI.

We have to be careful enough to let is_vsmp_box and vsmp_init defined,
since they are used outside this file

Signed-off-by: Glauber Costa <[email protected]>
CC: Ravikiran Thirumalai <[email protected]>
---
arch/x86/kernel/vsmp_64.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index a00961d..ccf23ae 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -19,6 +19,7 @@ #include <asm/pci-direct.h>
#include <asm/io.h>
#include <asm/paravirt.h>

+#ifdef CONFIG_PCI
/*
* Interrupt control on vSMPowered systems:
* ~AC is a shadow of IF. If IF is 'on' AC should be 'off'
@@ -87,12 +88,18 @@ int is_vsmp_box(void)
if (read_pci_config(0, 0x1f, 0, PCI_VENDOR_ID) ==
(PCI_VENDOR_ID_SCALEMP || (PCI_DEVICE_ID_SCALEMP_VSMP_CTL << 16)))
vsmp = 1;
-
return vsmp;
}
+#else
+int is_vsmp_box(void)
+{
+ return 0;
+}
+#endif

void __init vsmp_init(void)
{
+#ifdef CONFIG_PCI
void *address;
unsigned int cap, ctl, cfg;

@@ -125,5 +132,6 @@ void __init vsmp_init(void)
}

early_iounmap(address, 8);
+#endif
return;
}
--
1.4.2