diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-02-20 19:57:35 +0300 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-02-20 19:57:35 +0300 |
| commit | c8cb804a8add8d6f41b3805441b2ad16e30fbcc0 (patch) | |
| tree | 4e7d74208d7a2a623ce45f3f182297ccd046769d | |
| parent | d31558c077d8be422b65e97974017c030b4bd91a (diff) | |
| parent | 5043d7ed39dfdce3107d6642aa31bb7736547104 (diff) | |
| download | linux-c8cb804a8add8d6f41b3805441b2ad16e30fbcc0.tar.xz | |
Merge tag 'for-linus-7.0-rc1a-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen fix from Juergen Gross:
"A single patch fixing a boot regression when running as a Xen PV
guest. This issue was introduced in this merge window"
* tag 'for-linus-7.0-rc1a-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
x86/xen: Fix Xen PV guest boot
| -rw-r--r-- | arch/x86/xen/mmu_pv.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c index 963154feae06..3254eaa88471 100644 --- a/arch/x86/xen/mmu_pv.c +++ b/arch/x86/xen/mmu_pv.c @@ -509,6 +509,9 @@ static pgd_t *xen_get_user_pgd(pgd_t *pgd) unsigned offset = pgd - pgd_page; pgd_t *user_ptr = NULL; + if (!static_branch_likely(&xen_struct_pages_ready)) + return NULL; + if (offset < pgd_index(USER_LIMIT)) { struct page *page = virt_to_page(pgd_page); user_ptr = (pgd_t *)page->private; @@ -1098,7 +1101,8 @@ static void __init xen_cleanmfnmap_free_pgtbl(void *pgtbl, bool unpin) if (unpin) pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(pa)); - ClearPagePinned(virt_to_page(__va(pa))); + if (static_branch_likely(&xen_struct_pages_ready)) + ClearPagePinned(virt_to_page(__va(pa))); xen_free_ro_pages(pa, PAGE_SIZE); } |
