mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 23:52:08 +02:00
xen: branch for v6.16-rc1
-----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCaDQJqgAKCRCAXGG7T9hj viNAAP0SmAKx3R04Q90hx4d9TU1UBrT0iu2tQI7PzNmm6dR6QQD/enuEALQUk5tP LwDzVLgOBvqkzewQ3b6LYA2R+snmjwg= =M+nH -----END PGP SIGNATURE----- Merge tag 'for-linus-6.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen updates from Juergen Gross: - A fix for running as a Xen dom0 on the iMX8QXP Arm platform - An update of the xen.config adding XEN_UNPOPULATED_ALLOC for better support of PVH dom0 - A fix of the Xen balloon driver when running without CONFIG_XEN_UNPOPULATED_ALLOC - A fix of the dm_op Xen hypercall on Arm needed to pass user space buffers to the hypervisor in certain configurations * tag 'for-linus-6.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/arm: call uaccess_ttbr0_enable for dm_op hypercall xen/x86: fix initial memory balloon target xen: enable XEN_UNPOPULATED_ALLOC as part of xen.config xen: swiotlb: Wire up map_resource callback
This commit is contained in:
commit
5cf5240991
|
|
@ -83,7 +83,26 @@ HYPERCALL3(vcpu_op);
|
|||
HYPERCALL1(platform_op_raw);
|
||||
HYPERCALL2(multicall);
|
||||
HYPERCALL2(vm_assist);
|
||||
HYPERCALL3(dm_op);
|
||||
|
||||
SYM_FUNC_START(HYPERVISOR_dm_op)
|
||||
mov x16, #__HYPERVISOR_dm_op; \
|
||||
/*
|
||||
* dm_op hypercalls are issued by the userspace. The kernel needs to
|
||||
* enable access to TTBR0_EL1 as the hypervisor would issue stage 1
|
||||
* translations to user memory via AT instructions. Since AT
|
||||
* instructions are not affected by the PAN bit (ARMv8.1), we only
|
||||
* need the explicit uaccess_enable/disable if the TTBR0 PAN emulation
|
||||
* is enabled (it implies that hardware UAO and PAN disabled).
|
||||
*/
|
||||
uaccess_ttbr0_enable x6, x7, x8
|
||||
hvc XEN_IMM
|
||||
|
||||
/*
|
||||
* Disable userspace access from kernel once the hyp call completed.
|
||||
*/
|
||||
uaccess_ttbr0_disable x6, x7
|
||||
ret
|
||||
SYM_FUNC_END(HYPERVISOR_dm_op);
|
||||
|
||||
SYM_FUNC_START(privcmd_call)
|
||||
mov x16, x0
|
||||
|
|
|
|||
|
|
@ -704,15 +704,18 @@ static int __init balloon_add_regions(void)
|
|||
|
||||
/*
|
||||
* Extra regions are accounted for in the physmap, but need
|
||||
* decreasing from current_pages to balloon down the initial
|
||||
* allocation, because they are already accounted for in
|
||||
* total_pages.
|
||||
* decreasing from current_pages and target_pages to balloon
|
||||
* down the initial allocation, because they are already
|
||||
* accounted for in total_pages.
|
||||
*/
|
||||
if (extra_pfn_end - start_pfn >= balloon_stats.current_pages) {
|
||||
pages = extra_pfn_end - start_pfn;
|
||||
if (pages >= balloon_stats.current_pages ||
|
||||
pages >= balloon_stats.target_pages) {
|
||||
WARN(1, "Extra pages underflow current target");
|
||||
return -ERANGE;
|
||||
}
|
||||
balloon_stats.current_pages -= extra_pfn_end - start_pfn;
|
||||
balloon_stats.current_pages -= pages;
|
||||
balloon_stats.target_pages -= pages;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -426,4 +426,5 @@ const struct dma_map_ops xen_swiotlb_dma_ops = {
|
|||
.alloc_pages_op = dma_common_alloc_pages,
|
||||
.free_pages = dma_common_free_pages,
|
||||
.max_mapping_size = swiotlb_max_mapping_size,
|
||||
.map_resource = dma_direct_map_resource,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ CONFIG_SCSI=y
|
|||
CONFIG_FB=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
CONFIG_ZONE_DEVICE=y
|
||||
CONFIG_TTY=y
|
||||
# Technically not required but otherwise produces
|
||||
# pretty useless systems starting from allnoconfig
|
||||
|
|
@ -47,3 +49,4 @@ CONFIG_XEN_GNTDEV=m
|
|||
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
||||
CONFIG_SWIOTLB_XEN=y
|
||||
CONFIG_XEN_PRIVCMD=m
|
||||
CONFIG_XEN_UNPOPULATED_ALLOC=y
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user