Fixes:
- Fixes console deadlock when resuming PV guests - Fix regression hit when ballooning and resuming PV guests -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJTxt1pAAoJEFjIrFwIi8fJbGcH/RW88DhFw3wJrtyd68R2uY4R BQVsUeXltzS7cRZ46ytStn+UveXOII9SI1kdU0yAPWbpzgKwXkXLTGUbL26vXmfq ZpAGIVFBG+SrHuTDEYP/IhB2TI6ugTeHVK8+Mo+HfjEs99OJ+BAf4IlZ9cLUvrW8 l51HcFe7c9ueH7YculTAesUWZrdS6p5FBbTz0pwG8BvU5NxJ2EC+MktLEKZmV27Q Y3CN///BhIN6YXhPA3Frykxs36m4gFJUPgXbEQFea79I67f+frBX/VdKNPeaMoaR yb305PStdxwo6Ja8Qx/CrTl+y8vTtLP1cADRGSdLD3m1vI42PNF4Qjr1ruLbA34= =ky5L -----END PGP SIGNATURE----- Merge tag 'stable/for-linus-3.16-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull Xen fixes from Konrad Rzeszutek Wilk: "Two fixes found during migration of PV guests. David would be the one doing this pull but he is on vacation. Fixes: - fix console deadlock when resuming PV guests - fix regression hit when ballooning and resuming PV guests" * tag 'stable/for-linus-3.16-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/balloon: set ballooned out pages as invalid in p2m xen/manage: fix potential deadlock when resuming the console
This commit is contained in:
commit
59ca9ee428
@ -426,20 +426,18 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
|
|||||||
* p2m are consistent.
|
* p2m are consistent.
|
||||||
*/
|
*/
|
||||||
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
|
if (!xen_feature(XENFEAT_auto_translated_physmap)) {
|
||||||
unsigned long p;
|
|
||||||
struct page *scratch_page = get_balloon_scratch_page();
|
|
||||||
|
|
||||||
if (!PageHighMem(page)) {
|
if (!PageHighMem(page)) {
|
||||||
|
struct page *scratch_page = get_balloon_scratch_page();
|
||||||
|
|
||||||
ret = HYPERVISOR_update_va_mapping(
|
ret = HYPERVISOR_update_va_mapping(
|
||||||
(unsigned long)__va(pfn << PAGE_SHIFT),
|
(unsigned long)__va(pfn << PAGE_SHIFT),
|
||||||
pfn_pte(page_to_pfn(scratch_page),
|
pfn_pte(page_to_pfn(scratch_page),
|
||||||
PAGE_KERNEL_RO), 0);
|
PAGE_KERNEL_RO), 0);
|
||||||
BUG_ON(ret);
|
BUG_ON(ret);
|
||||||
}
|
|
||||||
p = page_to_pfn(scratch_page);
|
|
||||||
__set_phys_to_machine(pfn, pfn_to_mfn(p));
|
|
||||||
|
|
||||||
put_balloon_scratch_page();
|
put_balloon_scratch_page();
|
||||||
|
}
|
||||||
|
__set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -88,7 +88,6 @@ static int xen_suspend(void *data)
|
|||||||
|
|
||||||
if (!si->cancelled) {
|
if (!si->cancelled) {
|
||||||
xen_irq_resume();
|
xen_irq_resume();
|
||||||
xen_console_resume();
|
|
||||||
xen_timer_resume();
|
xen_timer_resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,6 +134,10 @@ static void do_suspend(void)
|
|||||||
|
|
||||||
err = stop_machine(xen_suspend, &si, cpumask_of(0));
|
err = stop_machine(xen_suspend, &si, cpumask_of(0));
|
||||||
|
|
||||||
|
/* Resume console as early as possible. */
|
||||||
|
if (!si.cancelled)
|
||||||
|
xen_console_resume();
|
||||||
|
|
||||||
raw_notifier_call_chain(&xen_resume_notifier, 0, NULL);
|
raw_notifier_call_chain(&xen_resume_notifier, 0, NULL);
|
||||||
|
|
||||||
dpm_resume_start(si.cancelled ? PMSG_THAW : PMSG_RESTORE);
|
dpm_resume_start(si.cancelled ? PMSG_THAW : PMSG_RESTORE);
|
||||||
|
Loading…
Reference in New Issue
Block a user