aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/multicall.c
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2010-11-16 13:01:43 +0000
committerKeir Fraser <keir@xen.org>2010-11-16 13:01:43 +0000
commit430203d65f9e17b22b4a7ba404f535a7bba1a1ff (patch)
tree7c5e2b65b59bb3eb0179fee04c5d2134f5cc8530 /xen/common/multicall.c
parent43e7d2b21a0ccfdb23de338987edf3da05d50e22 (diff)
downloadxen-430203d65f9e17b22b4a7ba404f535a7bba1a1ff.tar.gz
xen-430203d65f9e17b22b4a7ba404f535a7bba1a1ff.tar.bz2
xen-430203d65f9e17b22b4a7ba404f535a7bba1a1ff.zip
Make multicall state per-vcpu rather than per-cpu
This is a prerequisite for allowing guest descheduling within a hypercall. Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/common/multicall.c')
-rw-r--r--xen/common/multicall.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/xen/common/multicall.c b/xen/common/multicall.c
index 7ee21b47c1..58b96b28a3 100644
--- a/xen/common/multicall.c
+++ b/xen/common/multicall.c
@@ -15,7 +15,6 @@
#include <asm/hardirq.h>
#ifndef COMPAT
-DEFINE_PER_CPU(struct mc_state, mc_state);
typedef long ret_t;
#define xlat_multicall_entry(mcs)
#endif
@@ -24,7 +23,7 @@ ret_t
do_multicall(
XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
{
- struct mc_state *mcs = &this_cpu(mc_state);
+ struct mc_state *mcs = &current->mc_state;
unsigned int i;
if ( unlikely(__test_and_set_bit(_MCSF_in_multicall, &mcs->flags)) )