Commit 3c40706d authored by Marc Zyngier's avatar Marc Zyngier
Browse files

irqchip/gic-v4.1: Advertise support v4.1 to KVM



Tell KVM that we support v4.1. Nothing uses this information so far.

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Reviewed-by: default avatarZenghui Yu <yuzenghui@huawei.com>
Reviewed-by: default avatarEric Auger <eric.auger@redhat.com>
Link: https://lore.kernel.org/r/20200304203330.4967-7-maz@kernel.org
parent 9058a4e9
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -4870,6 +4870,7 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
	struct device_node *of_node;
	struct its_node *its;
	bool has_v4 = false;
	bool has_v4_1 = false;
	int err;

	gic_rdists = rdists;
@@ -4890,8 +4891,14 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
	if (err)
		return err;

	list_for_each_entry(its, &its_nodes, entry)
	list_for_each_entry(its, &its_nodes, entry) {
		has_v4 |= is_v4(its);
		has_v4_1 |= is_v4_1(its);
	}

	/* Don't bother with inconsistent systems */
	if (WARN_ON(!has_v4_1 && rdists->has_rvpeid))
		rdists->has_rvpeid = false;

	if (has_v4 & rdists->has_vlpis) {
		if (its_init_vpe_domain() ||
+2 −0
Original line number Diff line number Diff line
@@ -1764,6 +1764,7 @@ static void __init gic_of_setup_kvm_info(struct device_node *node)
		gic_v3_kvm_info.vcpu = r;

	gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis;
	gic_v3_kvm_info.has_v4_1 = gic_data.rdists.has_rvpeid;
	gic_set_kvm_info(&gic_v3_kvm_info);
}

@@ -2079,6 +2080,7 @@ static void __init gic_acpi_setup_kvm_info(void)
	}

	gic_v3_kvm_info.has_v4 = gic_data.rdists.has_vlpis;
	gic_v3_kvm_info.has_v4_1 = gic_data.rdists.has_rvpeid;
	gic_set_kvm_info(&gic_v3_kvm_info);
}

+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ struct gic_kvm_info {
	struct resource vctrl;
	/* vlpi support */
	bool		has_v4;
	/* rvpeid support */
	bool		has_v4_1;
};

const struct gic_kvm_info *gic_get_kvm_info(void);