summaryrefslogtreecommitdiffstats
path: root/arch/ia64/kvm/vcpu.c
diff options
context:
space:
mode:
authorJes Sorensen <jes@sgi.com>2009-01-21 15:16:43 +0100
committerAvi Kivity <avi@redhat.com>2009-03-24 11:03:07 +0200
commit934d534f8a5a39e20d5682b3a3a45ff351706b59 (patch)
treef1e6ce5330028a9aa942623c6706af8ca2ce2130 /arch/ia64/kvm/vcpu.c
parentb7e6e4d3602c738b8f61225d9f4514945df52f07 (diff)
downloadlinux-stable-934d534f8a5a39e20d5682b3a3a45ff351706b59.tar.gz
linux-stable-934d534f8a5a39e20d5682b3a3a45ff351706b59.tar.bz2
linux-stable-934d534f8a5a39e20d5682b3a3a45ff351706b59.zip
KVM: ia64: dynamic nr online cpus
Account for number of online cpus and use that in loops iterating over the list of vpus instead of scanning the full array unconditionally. This patch is a building block to facilitate allowing to bump up the size of MAX_VCPUS significantly. Signed-off-by: Jes Sorensen <jes@sgi.com> Acked-by : Xiantao Zhang <xiantao.zhang@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/ia64/kvm/vcpu.c')
-rw-r--r--arch/ia64/kvm/vcpu.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/ia64/kvm/vcpu.c b/arch/ia64/kvm/vcpu.c
index 4d8be4c252fa..d4d280505878 100644
--- a/arch/ia64/kvm/vcpu.c
+++ b/arch/ia64/kvm/vcpu.c
@@ -807,12 +807,15 @@ static inline void vcpu_set_itm(struct kvm_vcpu *vcpu, u64 val);
static void vcpu_set_itc(struct kvm_vcpu *vcpu, u64 val)
{
struct kvm_vcpu *v;
+ struct kvm *kvm;
int i;
long itc_offset = val - ia64_getreg(_IA64_REG_AR_ITC);
unsigned long vitv = VCPU(vcpu, itv);
+ kvm = (struct kvm *)KVM_VM_BASE;
+
if (vcpu->vcpu_id == 0) {
- for (i = 0; i < KVM_MAX_VCPUS; i++) {
+ for (i = 0; i < kvm->arch.online_vcpus; i++) {
v = (struct kvm_vcpu *)((char *)vcpu +
sizeof(struct kvm_vcpu_data) * i);
VMX(v, itc_offset) = itc_offset;