xen: fixes for 4.15-rc8
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABAgAGBQJaWMzkAAoJELDendYovxMvyRQH/34SP3oe7EtapIwDg0YqXBgJ 0nX2ZgMvhylR1ANZ4mPwP5z/CQZvrFWWAqhPZdGTntrzkvsNf5uZ0s38f3fk/eu8 3XxSDoZRrr/RFms42smS3NZRMFgagzLRrCVZrFWgFaDmsa/2/e6k46GAPRHI8Chg tEB6h8yHp1R9s4Z232I5pkilA7/ggABk8oRgKWQzrVqnfuD0G+byDm0h0kgan6br a63XVD1JTGCmEFI2KaRCthd+r5H34oDMEUS4anJXVdWwid23rSbsAsbO7Cfb9qKR XDA/ls371IrcqiHhnWepuXyUs811hF8qRoSTmG6gDtPXxazONcw0x0L8lK+S5Wo= =gLWS -----END PGP SIGNATURE----- Merge tag 'for-linus-4.15-rc8-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fixes from Juergen Gross: "This contains two build fixes for clang and two fixes for rather unlikely situations in the Xen gntdev driver" * tag 'for-linus-4.15-rc8-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/gntdev: Fix partial gntdev_mmap() cleanup xen/gntdev: Fix off-by-one error when unmapping with holes x86: xen: remove the use of VLAIS x86/xen/time: fix section mismatch for xen_init_time_ops()
This commit is contained in:
commit
aefd140437
|
@ -1325,20 +1325,18 @@ static void xen_flush_tlb_others(const struct cpumask *cpus,
|
|||
{
|
||||
struct {
|
||||
struct mmuext_op op;
|
||||
#ifdef CONFIG_SMP
|
||||
DECLARE_BITMAP(mask, num_processors);
|
||||
#else
|
||||
DECLARE_BITMAP(mask, NR_CPUS);
|
||||
#endif
|
||||
} *args;
|
||||
struct multicall_space mcs;
|
||||
const size_t mc_entry_size = sizeof(args->op) +
|
||||
sizeof(args->mask[0]) * BITS_TO_LONGS(num_possible_cpus());
|
||||
|
||||
trace_xen_mmu_flush_tlb_others(cpus, info->mm, info->start, info->end);
|
||||
|
||||
if (cpumask_empty(cpus))
|
||||
return; /* nothing to do */
|
||||
|
||||
mcs = xen_mc_entry(sizeof(*args));
|
||||
mcs = xen_mc_entry(mc_entry_size);
|
||||
args = mcs.args;
|
||||
args->op.arg2.vcpumask = to_cpumask(args->mask);
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ u64 xen_clocksource_read(void);
|
|||
void xen_setup_cpu_clockevents(void);
|
||||
void xen_save_time_memory_area(void);
|
||||
void xen_restore_time_memory_area(void);
|
||||
void __init xen_init_time_ops(void);
|
||||
void __ref xen_init_time_ops(void);
|
||||
void __init xen_hvm_init_time_ops(void);
|
||||
|
||||
irqreturn_t xen_debug_interrupt(int irq, void *dev_id);
|
||||
|
|
|
@ -380,10 +380,8 @@ static int unmap_grant_pages(struct grant_map *map, int offset, int pages)
|
|||
}
|
||||
range = 0;
|
||||
while (range < pages) {
|
||||
if (map->unmap_ops[offset+range].handle == -1) {
|
||||
range--;
|
||||
if (map->unmap_ops[offset+range].handle == -1)
|
||||
break;
|
||||
}
|
||||
range++;
|
||||
}
|
||||
err = __unmap_grant_pages(map, offset, range);
|
||||
|
@ -1073,8 +1071,10 @@ unlock_out:
|
|||
out_unlock_put:
|
||||
mutex_unlock(&priv->lock);
|
||||
out_put_map:
|
||||
if (use_ptemod)
|
||||
if (use_ptemod) {
|
||||
map->vma = NULL;
|
||||
unmap_grant_pages(map, 0, map->count);
|
||||
}
|
||||
gntdev_put_map(priv, map);
|
||||
return err;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue