Skip to content

Commit 1599932

Browse files
committed
Merge tag 'for-linus-6.5-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen fixes from Juergen Gross: - a cleanup of the Xen related ELF-notes - a fix for virtio handling in Xen dom0 when running Xen in a VM * tag 'for-linus-6.5-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/virtio: Fix NULL deref when a bridge of PCI root bus has no parent x86/Xen: tidy xen-head.S
2 parents 9350cd0 + 21a235b commit 1599932

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

arch/x86/xen/xen-head.S

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -90,30 +90,35 @@ SYM_CODE_END(xen_cpu_bringup_again)
9090
ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux")
9191
ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6")
9292
ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0")
93-
#ifdef CONFIG_X86_32
94-
ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, _ASM_PTR __PAGE_OFFSET)
95-
#else
93+
#ifdef CONFIG_XEN_PV
9694
ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, _ASM_PTR __START_KERNEL_map)
9795
/* Map the p2m table to a 512GB-aligned user address. */
9896
ELFNOTE(Xen, XEN_ELFNOTE_INIT_P2M, .quad (PUD_SIZE * PTRS_PER_PUD))
99-
#endif
100-
#ifdef CONFIG_XEN_PV
10197
ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, _ASM_PTR startup_xen)
102-
#endif
103-
ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, _ASM_PTR hypercall_page)
104-
ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,
105-
.ascii "!writable_page_tables|pae_pgdir_above_4gb")
106-
ELFNOTE(Xen, XEN_ELFNOTE_SUPPORTED_FEATURES,
107-
.long (1 << XENFEAT_writable_page_tables) | \
108-
(1 << XENFEAT_dom0) | \
109-
(1 << XENFEAT_linux_rsdp_unrestricted))
98+
ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .ascii "!writable_page_tables")
11099
ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes")
111-
ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
112100
ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID,
113101
.quad _PAGE_PRESENT; .quad _PAGE_PRESENT)
114-
ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1)
115102
ELFNOTE(Xen, XEN_ELFNOTE_MOD_START_PFN, .long 1)
116-
ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW, _ASM_PTR __HYPERVISOR_VIRT_START)
117103
ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, _ASM_PTR 0)
104+
# define FEATURES_PV (1 << XENFEAT_writable_page_tables)
105+
#else
106+
# define FEATURES_PV 0
107+
#endif
108+
#ifdef CONFIG_XEN_PVH
109+
# define FEATURES_PVH (1 << XENFEAT_linux_rsdp_unrestricted)
110+
#else
111+
# define FEATURES_PVH 0
112+
#endif
113+
#ifdef CONFIG_XEN_DOM0
114+
# define FEATURES_DOM0 (1 << XENFEAT_dom0)
115+
#else
116+
# define FEATURES_DOM0 0
117+
#endif
118+
ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, _ASM_PTR hypercall_page)
119+
ELFNOTE(Xen, XEN_ELFNOTE_SUPPORTED_FEATURES,
120+
.long FEATURES_PV | FEATURES_PVH | FEATURES_DOM0)
121+
ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
122+
ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1)
118123

119124
#endif /*CONFIG_XEN */

drivers/xen/grant-dma-ops.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,8 @@ static struct device_node *xen_dt_get_node(struct device *dev)
303303
while (!pci_is_root_bus(bus))
304304
bus = bus->parent;
305305

306+
if (!bus->bridge->parent)
307+
return NULL;
306308
return of_node_get(bus->bridge->parent->of_node);
307309
}
308310

0 commit comments

Comments
 (0)