mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-23 01:40:30 +00:00
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;
|
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;
|
struct page **pages;
|
||||||
xen_pfn_t *pfns;
|
xen_pfn_t *pfns;
|
||||||
|
void *vaddr;
|
||||||
int rc;
|
int rc;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
unsigned long nr_grant_frames = gnttab_max_grant_frames();
|
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++)
|
for (i = 0; i < nr_grant_frames; i++)
|
||||||
pfns[i] = page_to_pfn(pages[i]);
|
pfns[i] = page_to_pfn(pages[i]);
|
||||||
|
|
||||||
rc = arch_gnttab_map_shared(pfns, nr_grant_frames, nr_grant_frames,
|
vaddr = vmap(pages, nr_grant_frames, 0, PAGE_KERNEL);
|
||||||
&xen_auto_xlat_grant_frames.vaddr);
|
if (!vaddr) {
|
||||||
|
|
||||||
if (rc) {
|
|
||||||
pr_warn("%s Couldn't map %ld pfns rc:%d\n", __func__,
|
pr_warn("%s Couldn't map %ld pfns rc:%d\n", __func__,
|
||||||
nr_grant_frames, rc);
|
nr_grant_frames, rc);
|
||||||
free_xenballooned_pages(nr_grant_frames, pages);
|
free_xenballooned_pages(nr_grant_frames, pages);
|
||||||
kfree(pages);
|
kfree(pages);
|
||||||
kfree(pfns);
|
kfree(pfns);
|
||||||
return rc;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
kfree(pages);
|
kfree(pages);
|
||||||
|
|
||||||
xen_auto_xlat_grant_frames.pfn = pfns;
|
xen_auto_xlat_grant_frames.pfn = pfns;
|
||||||
xen_auto_xlat_grant_frames.count = nr_grant_frames;
|
xen_auto_xlat_grant_frames.count = nr_grant_frames;
|
||||||
|
xen_auto_xlat_grant_frames.vaddr = vaddr;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -444,7 +444,7 @@ void xen_setup_timer(int cpu)
|
|||||||
|
|
||||||
irq = bind_virq_to_irqhandler(VIRQ_TIMER, cpu, xen_timer_interrupt,
|
irq = bind_virq_to_irqhandler(VIRQ_TIMER, cpu, xen_timer_interrupt,
|
||||||
IRQF_PERCPU|IRQF_NOBALANCING|IRQF_TIMER|
|
IRQF_PERCPU|IRQF_NOBALANCING|IRQF_TIMER|
|
||||||
IRQF_FORCE_RESUME,
|
IRQF_FORCE_RESUME|IRQF_EARLY_RESUME,
|
||||||
name, NULL);
|
name, NULL);
|
||||||
(void)xen_set_irq_priority(irq, XEN_IRQ_PRIORITY_MAX);
|
(void)xen_set_irq_priority(irq, XEN_IRQ_PRIORITY_MAX);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user