Merge tag 'stable/for-linus-3.17-b-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull Xen bugfixes from David Vrabel: - fix ARM build - fix boot crash with PVH guests - improve reliability of resume/migration * tag 'stable/for-linus-3.17-b-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: x86/xen: use vmap() to map grant table pages in PVH guests x86/xen: resume timer irqs early arm/xen: remove duplicate arch_gnttab_init() function
This commit is contained in:
@@ -118,6 +118,7 @@ static int __init xlated_setup_gnttab_pages(void)
|
||||
{
|
||||
struct page **pages;
|
||||
xen_pfn_t *pfns;
|
||||
void *vaddr;
|
||||
int rc;
|
||||
unsigned int i;
|
||||
unsigned long nr_grant_frames = gnttab_max_grant_frames();
|
||||
@@ -143,21 +144,20 @@ static int __init xlated_setup_gnttab_pages(void)
|
||||
for (i = 0; i < nr_grant_frames; i++)
|
||||
pfns[i] = page_to_pfn(pages[i]);
|
||||
|
||||
rc = arch_gnttab_map_shared(pfns, nr_grant_frames, nr_grant_frames,
|
||||
&xen_auto_xlat_grant_frames.vaddr);
|
||||
|
||||
if (rc) {
|
||||
vaddr = vmap(pages, nr_grant_frames, 0, PAGE_KERNEL);
|
||||
if (!vaddr) {
|
||||
pr_warn("%s Couldn't map %ld pfns rc:%d\n", __func__,
|
||||
nr_grant_frames, rc);
|
||||
free_xenballooned_pages(nr_grant_frames, pages);
|
||||
kfree(pages);
|
||||
kfree(pfns);
|
||||
return rc;
|
||||
return -ENOMEM;
|
||||
}
|
||||
kfree(pages);
|
||||
|
||||
xen_auto_xlat_grant_frames.pfn = pfns;
|
||||
xen_auto_xlat_grant_frames.count = nr_grant_frames;
|
||||
xen_auto_xlat_grant_frames.vaddr = vaddr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -444,7 +444,7 @@ void xen_setup_timer(int cpu)
|
||||
|
||||
irq = bind_virq_to_irqhandler(VIRQ_TIMER, cpu, xen_timer_interrupt,
|
||||
IRQF_PERCPU|IRQF_NOBALANCING|IRQF_TIMER|
|
||||
IRQF_FORCE_RESUME,
|
||||
IRQF_FORCE_RESUME|IRQF_EARLY_RESUME,
|
||||
name, NULL);
|
||||
(void)xen_set_irq_priority(irq, XEN_IRQ_PRIORITY_MAX);
|
||||
|
||||
|
Referens i nytt ärende
Block a user