Unverified Commit e11dfd5f authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!12607 virtcca compile warning clean and coda bugfix

Merge Pull Request from: @bob_1211 
 
Compilation warning cleaning -> Fixing compilation issues in scenarios where ARM_PMU compilation options are turned off:

struct kvm_pmu has no member named 'irq_level'
/kernel/arch/arm64/kvm/arm.c:899:17 implicit declaration of function 'arm_pmu_set_phys_irq'

Compiling warning cleanup -> Issue with adding function comments in vfio.

arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvf-description-in-find_arm_smmu_domain
| |--
arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-kvm-description-in-cvm_vfio_add_kvm_to_smmu_domain
| |--
arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Excess-function-parameter-smmu_domain_group_list-description-in-find_arm_smmu_domain
| |--
arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-data-not-described-in-find_arm_smmu_domain
| |--
arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-dev-not-described-in-find_arm_smmu_domain
| |--
arch-arm64-kvm-..-..-..-virt-kvm-vfio.c:warning:Function-parameter-or-member-kv-not-described-in-cvm_vfio_add_kvm_to_smmu_domain
| |--
arch-arm64-kvm-virtcca_cvm.c:warning:no-previous-prototype-for-function-kvm_cvm_create_dev_ttt_levels

Solution to the mapping failure issue caused by the non-zeroing of MSI address during the second device passthrough of virtCCA. 
 
Link:https://gitee.com/openeuler/kernel/pulls/12607

 

Reviewed-by: default avatarKevin Zhu <zhukeqian1@huawei.com>
Reviewed-by: default avatarXu Kuohai <xukuohai@huawei.com>
Signed-off-by: default avatarZhang Peng <zhangpeng362@huawei.com>
parents d0f2f9b2 efbc7417
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -960,11 +960,8 @@ static int kvm_cvm_dev_ttt_create(struct virtcca_cvm *cvm,
}

/* CVM create ttt level information about device */
int kvm_cvm_create_dev_ttt_levels(struct kvm *kvm, struct virtcca_cvm *cvm,
			unsigned long ipa,
			int level,
			int max_level,
			struct kvm_mmu_memory_cache *mc)
static int kvm_cvm_create_dev_ttt_levels(struct kvm *kvm, struct virtcca_cvm *cvm,
	unsigned long ipa, int level, int max_level, struct kvm_mmu_memory_cache *mc)
{
	int ret = 0;

+3 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ static int add_cc_dev_obj(u32 sid, u32 vmid, u32 root_bd, bool secure)
			obj->vmid = vmid;
			obj->root_bd = root_bd;
			obj->secure = secure;
			obj->msi_addr = 0;
			return 0;
		}
	}
@@ -281,6 +282,8 @@ u32 virtcca_tmi_dev_attach(struct arm_smmu_domain *arm_smmu_domain, struct kvm *
			for (i = 0; i < master->num_streams; i++) {
				u32 sid = master->streams[i].id;

				cmd[0] = 0;
				cmd[1] = 0;
				for (j = 0; j < i; j++)
					if (master->streams[j].id == sid)
						break;
+6 −4
Original line number Diff line number Diff line
@@ -167,10 +167,6 @@ int arm_pmu_acpi_probe(armpmu_init_fn init_fn);
static inline int arm_pmu_acpi_probe(armpmu_init_fn init_fn) { return 0; }
#endif

#ifdef CONFIG_HISI_VIRTCCA_HOST
void arm_pmu_set_phys_irq(bool enable);
#endif

#ifdef CONFIG_KVM
void kvm_host_pmu_init(struct arm_pmu *pmu);
#else
@@ -190,6 +186,12 @@ void armpmu_free_irq(int irq, int cpu);

#endif /* CONFIG_ARM_PMU */

#if defined(CONFIG_ARM_PMU) && defined(CONFIG_HISI_VIRTCCA_HOST)
void arm_pmu_set_phys_irq(bool enable);
#else
#define arm_pmu_set_phys_irq(x)	do {} while (0)
#endif

#define ARMV8_SPE_PDEV_NAME "arm,spe-v1"
#define ARMV8_TRBE_PDEV_NAME "arm,trbe"

+3 −3
Original line number Diff line number Diff line
@@ -406,7 +406,7 @@ void kvm_vfio_ops_exit(void)
 * cvm_vfio_add_kvm_to_smmu_domain - Bind the confidential
 * virtual machine to smmu domain
 * @filp: The handle of file
 * @kvm: The kvm belone to confidential virtual machine
 * @kv: The kvm_vfio belong to confidential virtual machine
 *
 * Returns:
 * %-ENXIO if set kvm failed or iommu group is null
@@ -512,8 +512,8 @@ EXPORT_SYMBOL_GPL(virtcca_arm_smmu_get_kvm);

/**
 * find_arm_smmu_domain - Find smmu domain list from kvm vfio file
 * @kvf: Kvm vfio file
 * @smmu_domain_group_list: List of smmu domain group
 * @dev: The handle of device
 * @data: List of smmu domain group
 */
int find_arm_smmu_domain(struct device *dev, void *data)
{