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 {
|
||||||
struct mmuext_op op;
|
struct mmuext_op op;
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
DECLARE_BITMAP(mask, num_processors);
|
|
||||||
#else
|
|
||||||
DECLARE_BITMAP(mask, NR_CPUS);
|
DECLARE_BITMAP(mask, NR_CPUS);
|
||||||
#endif
|
|
||||||
} *args;
|
} *args;
|
||||||
struct multicall_space mcs;
|
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);
|
trace_xen_mmu_flush_tlb_others(cpus, info->mm, info->start, info->end);
|
||||||
|
|
||||||
if (cpumask_empty(cpus))
|
if (cpumask_empty(cpus))
|
||||||
return; /* nothing to do */
|
return; /* nothing to do */
|
||||||
|
|
||||||
mcs = xen_mc_entry(sizeof(*args));
|
mcs = xen_mc_entry(mc_entry_size);
|
||||||
args = mcs.args;
|
args = mcs.args;
|
||||||
args->op.arg2.vcpumask = to_cpumask(args->mask);
|
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_setup_cpu_clockevents(void);
|
||||||
void xen_save_time_memory_area(void);
|
void xen_save_time_memory_area(void);
|
||||||
void xen_restore_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);
|
void __init xen_hvm_init_time_ops(void);
|
||||||
|
|
||||||
irqreturn_t xen_debug_interrupt(int irq, void *dev_id);
|
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;
|
range = 0;
|
||||||
while (range < pages) {
|
while (range < pages) {
|
||||||
if (map->unmap_ops[offset+range].handle == -1) {
|
if (map->unmap_ops[offset+range].handle == -1)
|
||||||
range--;
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
range++;
|
range++;
|
||||||
}
|
}
|
||||||
err = __unmap_grant_pages(map, offset, range);
|
err = __unmap_grant_pages(map, offset, range);
|
||||||
|
@ -1073,8 +1071,10 @@ unlock_out:
|
||||||
out_unlock_put:
|
out_unlock_put:
|
||||||
mutex_unlock(&priv->lock);
|
mutex_unlock(&priv->lock);
|
||||||
out_put_map:
|
out_put_map:
|
||||||
if (use_ptemod)
|
if (use_ptemod) {
|
||||||
map->vma = NULL;
|
map->vma = NULL;
|
||||||
|
unmap_grant_pages(map, 0, map->count);
|
||||||
|
}
|
||||||
gntdev_put_map(priv, map);
|
gntdev_put_map(priv, map);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue