aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/xen/mmu_pv.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 7118f776cd49..aa701d2a5023 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -1339,20 +1339,18 @@ static void xen_flush_tlb_others(const struct cpumask *cpus,
1339{ 1339{
1340 struct { 1340 struct {
1341 struct mmuext_op op; 1341 struct mmuext_op op;
1342#ifdef CONFIG_SMP
1343 DECLARE_BITMAP(mask, num_processors);
1344#else
1345 DECLARE_BITMAP(mask, NR_CPUS); 1342 DECLARE_BITMAP(mask, NR_CPUS);
1346#endif
1347 } *args; 1343 } *args;
1348 struct multicall_space mcs; 1344 struct multicall_space mcs;
1345 const size_t mc_entry_size = sizeof(args->op) +
1346 sizeof(args->mask[0]) * BITS_TO_LONGS(num_possible_cpus());
1349 1347
1350 trace_xen_mmu_flush_tlb_others(cpus, info->mm, info->start, info->end); 1348 trace_xen_mmu_flush_tlb_others(cpus, info->mm, info->start, info->end);
1351 1349
1352 if (cpumask_empty(cpus)) 1350 if (cpumask_empty(cpus))
1353 return; /* nothing to do */ 1351 return; /* nothing to do */
1354 1352
1355 mcs = xen_mc_entry(sizeof(*args)); 1353 mcs = xen_mc_entry(mc_entry_size);
1356 args = mcs.args; 1354 args = mcs.args;
1357 args->op.arg2.vcpumask = to_cpumask(args->mask); 1355 args->op.arg2.vcpumask = to_cpumask(args->mask);
1358 1356