mirror of https://gitee.com/openkylin/linux.git
Xen bug fixes for 3.17-rc0
- Fix ARM build. - Fix boot crash with PVH guests. - Improve reliability of resume/migration. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJT6y4zAAoJEFxbo/MsZsTRqI4H/3c+TXRjeB5787wkm3Lya1JO 5+DsbbtlM13PT+Oi0Zop7xUYMPya7Xkwix0FvFvJ/q0/NFMf6RDJREtRy7atRkkp IRKccsGA/OH0ETcmQJOGHErnK51cAjMrm+ilJHIIYd6btEVCuP212G9f8CVGMyIK r0U6sVUxTJ5TPOLjvv5e8Rz+iTtP+OXvxaf2+rcqAf1QAJJ6S6+ipJZjZemX8OR/ IoUPiee5Ou/ogQekt0f473vJrxX5nP7wLdJ2F7YA/A6F/HQHNbYDgQXf2IXrqFmb DpkpXxaowZGKXwnwqHUr3pVDdeMpvYJKZDPZmTQq2htrXufHIiY/E3qr9wGjqxk= =iVy1 -----END PGP SIGNATURE----- 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:
commit
4dacb91c7d
|
@ -49,8 +49,3 @@ int arch_gnttab_init(unsigned long nr_shared)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int arch_gnttab_init(unsigned long nr_shared, unsigned long nr_status)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue