mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge tag 'kvmarm-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM/arm64 changes for 6.17, round #1 - Host driver for GICv5, the next generation interrupt controller for arm64, including support for interrupt routing, MSIs, interrupt translation and wired interrupts. - Use FEAT_GCIE_LEGACY on GICv5 systems to virtualize GICv3 VMs on GICv5 hardware, leveraging the legacy VGIC interface. - Userspace control of the 'nASSGIcap' GICv3 feature, allowing userspace to disable support for SGIs w/o an active state on hardware that previously advertised it unconditionally. - Map supporting endpoints with cacheable memory attributes on systems with FEAT_S2FWB and DIC where KVM no longer needs to perform cache maintenance on the address range. - Nested support for FEAT_RAS and FEAT_DoubleFault2, allowing the guest hypervisor to inject external aborts into an L2 VM and take traps of masked external aborts to the hypervisor. - Convert more system register sanitization to the config-driven implementation. - Fixes to the visibility of EL2 registers, namely making VGICv3 system registers accessible through the VGIC device instead of the ONE_REG vCPU ioctls. - Various cleanups and minor fixes.
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
enum vgic_type {
|
||||
VGIC_V2, /* Good ol' GICv2 */
|
||||
VGIC_V3, /* New fancy GICv3 */
|
||||
VGIC_V5, /* Newer, fancier GICv5 */
|
||||
};
|
||||
|
||||
/* same for all guests, as depending only on the _host's_ GIC model */
|
||||
@@ -77,9 +78,12 @@ struct vgic_global {
|
||||
/* Pseudo GICv3 from outer space */
|
||||
bool no_hw_deactivation;
|
||||
|
||||
/* GIC system register CPU interface */
|
||||
/* GICv3 system register CPU interface */
|
||||
struct static_key_false gicv3_cpuif;
|
||||
|
||||
/* GICv3 compat mode on a GICv5 host */
|
||||
bool has_gcie_v3_compat;
|
||||
|
||||
u32 ich_vtr_el2;
|
||||
};
|
||||
|
||||
@@ -264,6 +268,9 @@ struct vgic_dist {
|
||||
/* distributor enabled */
|
||||
bool enabled;
|
||||
|
||||
/* Supports SGIs without active state */
|
||||
bool nassgicap;
|
||||
|
||||
/* Wants SGIs without active state */
|
||||
bool nassgireq;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user