[android-common:android15-6.6-2025-08 1/1] drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:795:5: warning: no previous prototype for function 'kvm_arm_smmu_suspend'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
Hi Mostafa,

First bad commit (maybe != root cause):

tree:   https://android.googlesource.com/kernel/common android15-6.6-2025-08
head:   1d405563127e428110b2c97c80e8efb219e5f43c
commit: 1f7c566fe2211514bf377944f1e9964255b2ba75 [1/1] ANDROID: drivers/arm-smmu-v3-kvm: Modularize driver
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20260828/[email protected]/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260828/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:221:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
           int ret;
               ^
>> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:795:5: warning: no previous prototype for function 'kvm_arm_smmu_suspend' [-Wmissing-prototypes]
   int kvm_arm_smmu_suspend(struct device *dev)
       ^
   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:795:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int kvm_arm_smmu_suspend(struct device *dev)
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:805:5: warning: no previous prototype for function 'kvm_arm_smmu_resume' [-Wmissing-prototypes]
   int kvm_arm_smmu_resume(struct device *dev)
       ^
   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:805:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int kvm_arm_smmu_resume(struct device *dev)
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:863:5: warning: no previous prototype for function 'smmu_put_device' [-Wmissing-prototypes]
   int smmu_put_device(struct device *dev, void *data)
       ^
   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:863:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int smmu_put_device(struct device *dev, void *data)
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:929:15: warning: no previous prototype for function 'kvm_arm_smmu_v3_id' [-Wmissing-prototypes]
   pkvm_handle_t kvm_arm_smmu_v3_id(struct device *dev)
                 ^
   drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c:929:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   pkvm_handle_t kvm_arm_smmu_v3_id(struct device *dev)
   ^
   static 
   5 warnings generated.
--
>> drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:596:5: warning: no previous prototype for function 'smmu_domain_finalise' [-Wmissing-prototypes]
   int smmu_domain_finalise(struct kvm_hyp_iommu_domain *domain)
       ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:596:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int smmu_domain_finalise(struct kvm_hyp_iommu_domain *domain)
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:712:5: warning: no previous prototype for function 'smmu_alloc_domain' [-Wmissing-prototypes]
   int smmu_alloc_domain(struct kvm_hyp_iommu_domain *domain)
       ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:712:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int smmu_alloc_domain(struct kvm_hyp_iommu_domain *domain)
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:727:6: warning: no previous prototype for function 'smmu_free_domain' [-Wmissing-prototypes]
   void smmu_free_domain(struct kvm_hyp_iommu_domain *domain)
        ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:727:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void smmu_free_domain(struct kvm_hyp_iommu_domain *domain)
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:739:6: warning: no previous prototype for function 'smmu_dabt_device' [-Wmissing-prototypes]
   bool smmu_dabt_device(struct hyp_arm_smmu_v3_device *smmu,
        ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:739:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   bool smmu_dabt_device(struct hyp_arm_smmu_v3_device *smmu,
   ^
   static 
>> drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:782:6: warning: no previous prototype for function 'smmu_dabt_handler' [-Wmissing-prototypes]
   bool smmu_dabt_handler(struct kvm_cpu_context *host_ctxt, u64 esr, u64 addr)
        ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:782:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   bool smmu_dabt_handler(struct kvm_cpu_context *host_ctxt, u64 esr, u64 addr)
   ^
   static 
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:794:5: warning: no previous prototype for function 'smmu_suspend' [-Wmissing-prototypes]
   int smmu_suspend(struct kvm_hyp_iommu *iommu)
       ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:794:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int smmu_suspend(struct kvm_hyp_iommu *iommu)
   ^
   static 
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:807:5: warning: no previous prototype for function 'smmu_resume' [-Wmissing-prototypes]
   int smmu_resume(struct kvm_hyp_iommu *iommu)
       ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:807:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int smmu_resume(struct kvm_hyp_iommu *iommu)
   ^
   static 
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:820:5: warning: no previous prototype for function 'smmu_init_hyp_module' [-Wmissing-prototypes]
   int smmu_init_hyp_module(const struct pkvm_module_ops *ops)
       ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/arm-smmu-v3.c:820:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int smmu_init_hyp_module(const struct pkvm_module_ops *ops)
   ^
   static 
   8 warnings generated.
--
>> drivers/iommu/arm/arm-smmu-v3/pkvm/io-pgtable-arm.c:54:5: warning: no previous prototype for function 'kvm_arm_io_pgtable_init' [-Wmissing-prototypes]
   int kvm_arm_io_pgtable_init(struct io_pgtable_cfg *cfg,
       ^
   drivers/iommu/arm/arm-smmu-v3/pkvm/io-pgtable-arm.c:54:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int kvm_arm_io_pgtable_init(struct io_pgtable_cfg *cfg,
   ^
   static 
   1 warning generated.


vim +/kvm_arm_smmu_suspend +795 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-kvm.c

d4519820851b1db Jean-Philippe Brucker 2022-02-09  794  
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11 @795  int kvm_arm_smmu_suspend(struct device *dev)
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  796  {
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  797  	struct arm_smmu_device *smmu = dev_get_drvdata(dev);
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  798  	struct host_arm_smmu_device *host_smmu = smmu_to_host(smmu);
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  799  
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  800  	if (host_smmu->hvc_pd)
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  801  		return pkvm_iommu_suspend(dev);
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  802  	return 0;
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  803  }
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  804  
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11 @805  int kvm_arm_smmu_resume(struct device *dev)
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  806  {
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  807  	struct arm_smmu_device *smmu = dev_get_drvdata(dev);
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  808  	struct host_arm_smmu_device *host_smmu = smmu_to_host(smmu);
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  809  
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  810  	if (host_smmu->hvc_pd)
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  811  		return pkvm_iommu_resume(dev);
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  812  	return 0;
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  813  }
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  814  
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  815  static const struct dev_pm_ops kvm_arm_smmu_pm_ops = {
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  816  	SET_RUNTIME_PM_OPS(kvm_arm_smmu_suspend, kvm_arm_smmu_resume, NULL)
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  817  };
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  818  
d4519820851b1db Jean-Philippe Brucker 2022-02-09  819  static const struct of_device_id arm_smmu_of_match[] = {
d4519820851b1db Jean-Philippe Brucker 2022-02-09  820  	{ .compatible = "arm,smmu-v3", },
d4519820851b1db Jean-Philippe Brucker 2022-02-09  821  	{ },
d4519820851b1db Jean-Philippe Brucker 2022-02-09  822  };
d4519820851b1db Jean-Philippe Brucker 2022-02-09  823  
d4519820851b1db Jean-Philippe Brucker 2022-02-09  824  static struct platform_driver kvm_arm_smmu_driver = {
d4519820851b1db Jean-Philippe Brucker 2022-02-09  825  	.driver = {
d4519820851b1db Jean-Philippe Brucker 2022-02-09  826  		.name = "kvm-arm-smmu-v3",
d4519820851b1db Jean-Philippe Brucker 2022-02-09  827  		.of_match_table = arm_smmu_of_match,
94d1b3e12c96365 Jean-Philippe Brucker 2022-10-11  828  		.pm = &kvm_arm_smmu_pm_ops,
d4519820851b1db Jean-Philippe Brucker 2022-02-09  829  	},
d4519820851b1db Jean-Philippe Brucker 2022-02-09  830  	.remove = kvm_arm_smmu_remove,
d4519820851b1db Jean-Philippe Brucker 2022-02-09  831  };
d4519820851b1db Jean-Philippe Brucker 2022-02-09  832  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  833  static int kvm_arm_smmu_array_alloc(void)
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  834  {
be3195fe7b08b04 Mostafa Saleh         2023-10-17  835  	int smmu_order;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  836  	struct device_node *np;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  837  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  838  	kvm_arm_smmu_count = 0;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  839  	for_each_compatible_node(np, NULL, "arm,smmu-v3")
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  840  		kvm_arm_smmu_count++;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  841  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  842  	if (!kvm_arm_smmu_count)
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  843  		return 0;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  844  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  845  	/* Allocate the parameter list shared with the hypervisor */
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  846  	smmu_order = get_order(kvm_arm_smmu_count * sizeof(*kvm_arm_smmu_array));
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  847  	kvm_arm_smmu_array = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  848  						      smmu_order);
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  849  	if (!kvm_arm_smmu_array)
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  850  		return -ENOMEM;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  851  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  852  	return 0;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  853  }
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  854  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  855  static void kvm_arm_smmu_array_free(void)
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  856  {
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  857  	int order;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  858  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  859  	order = get_order(kvm_arm_smmu_count * sizeof(*kvm_arm_smmu_array));
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  860  	free_pages((unsigned long)kvm_arm_smmu_array, order);
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  861  }
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  862  
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10 @863  int smmu_put_device(struct device *dev, void *data)
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  864  {
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  865  	pm_runtime_put_noidle(dev);
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  866  	return 0;
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  867  }
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  868  
d4519820851b1db Jean-Philippe Brucker 2022-02-09  869  /**
d4519820851b1db Jean-Philippe Brucker 2022-02-09  870   * kvm_arm_smmu_v3_init() - Reserve the SMMUv3 for KVM
d4519820851b1db Jean-Philippe Brucker 2022-02-09  871   * Return 0 if all present SMMUv3 were probed successfully, or an error.
d4519820851b1db Jean-Philippe Brucker 2022-02-09  872   *   If no SMMU was found, return 0, with a count of 0.
d4519820851b1db Jean-Philippe Brucker 2022-02-09  873   */
5d6af2ce0093f6b Mostafa Saleh         2023-05-01  874  static int kvm_arm_smmu_v3_init(void)
d4519820851b1db Jean-Philippe Brucker 2022-02-09  875  {
d4519820851b1db Jean-Philippe Brucker 2022-02-09  876  	int ret;
d4519820851b1db Jean-Philippe Brucker 2022-02-09  877  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  878  	/*
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  879  	 * Check whether any device owned by the host is behind an SMMU.
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  880  	 */
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  881  	ret = kvm_arm_smmu_array_alloc();
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  882  	if (ret || !kvm_arm_smmu_count)
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  883  		return ret;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  884  
d4519820851b1db Jean-Philippe Brucker 2022-02-09  885  	ret = platform_driver_probe(&kvm_arm_smmu_driver, kvm_arm_smmu_probe);
d4519820851b1db Jean-Philippe Brucker 2022-02-09  886  	if (ret)
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  887  		goto err_free;
d4519820851b1db Jean-Philippe Brucker 2022-02-09  888  
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  889  	if (kvm_arm_smmu_cur != kvm_arm_smmu_count) {
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  890  		/* A device exists but failed to probe */
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  891  		ret = -EUNATCH;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  892  		goto err_free;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  893  	}
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  894  
fcc9e477aaee84d Mostafa Saleh         2023-08-17  895  #ifdef MODULE
fcc9e477aaee84d Mostafa Saleh         2023-08-17  896  	ret = pkvm_load_el2_module(kvm_nvhe_sym(smmu_init_hyp_module),
fcc9e477aaee84d Mostafa Saleh         2023-08-17  897  				   &pkvm_module_token);
fcc9e477aaee84d Mostafa Saleh         2023-08-17  898  
fcc9e477aaee84d Mostafa Saleh         2023-08-17  899  	if (ret) {
fcc9e477aaee84d Mostafa Saleh         2023-08-17  900  		pr_err("Failed to load SMMUv3 IOMMU EL2 module: %d\n", ret);
fcc9e477aaee84d Mostafa Saleh         2023-08-17  901  		return ret;
fcc9e477aaee84d Mostafa Saleh         2023-08-17  902  	}
fcc9e477aaee84d Mostafa Saleh         2023-08-17  903  #endif
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  904  	/*
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  905  	 * These variables are stored in the nVHE image, and won't be accessible
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  906  	 * after KVM initialization. Ownership of kvm_arm_smmu_array will be
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  907  	 * transferred to the hypervisor as well.
f6758993ba0dc87 Jean-Philippe Brucker 2022-11-23  908  	 *
f6758993ba0dc87 Jean-Philippe Brucker 2022-11-23  909  	 * kvm_arm_smmu_memcache is shared between hypervisor and host.
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  910  	 */
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  911  	kvm_hyp_arm_smmu_v3_smmus = kvm_arm_smmu_array;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  912  	kvm_hyp_arm_smmu_v3_count = kvm_arm_smmu_count;
bb65953ff665bb3 David Brazdil         2023-08-09  913  
fcc9e477aaee84d Mostafa Saleh         2023-08-17  914  	ret = kvm_iommu_init_hyp(ksym_ref_addr_nvhe(smmu_ops), 0);
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  915  
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  916  	WARN_ON(driver_for_each_device(&kvm_arm_smmu_driver.driver, NULL,
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  917  				       NULL, smmu_put_device));
842ddd77ef926ee Jean-Philippe Brucker 2022-10-10  918  	return ret;
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  919  err_free:
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  920  	kvm_arm_smmu_array_free();
58d165ce27ff4bc Jean-Philippe Brucker 2022-02-09  921  	return ret;
d4519820851b1db Jean-Philippe Brucker 2022-02-09  922  }
d4519820851b1db Jean-Philippe Brucker 2022-02-09  923  
5d6af2ce0093f6b Mostafa Saleh         2023-05-01  924  static void kvm_arm_smmu_v3_remove(void)
d4519820851b1db Jean-Philippe Brucker 2022-02-09  925  {
d4519820851b1db Jean-Philippe Brucker 2022-02-09  926  	platform_driver_unregister(&kvm_arm_smmu_driver);
d4519820851b1db Jean-Philippe Brucker 2022-02-09  927  }
5d6af2ce0093f6b Mostafa Saleh         2023-05-01  928  
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19 @929  pkvm_handle_t kvm_arm_smmu_v3_id(struct device *dev)
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  930  {
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  931  	struct arm_smmu_device *smmu = dev_get_drvdata(dev);
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  932  	struct host_arm_smmu_device *host_smmu = smmu_to_host(smmu);
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  933  
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  934  	return host_smmu->id;
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  935  }
9d5e57d93b40eb3 Mostafa Saleh         2023-08-19  936  

:::::: The code at line 795 was first introduced by commit
:::::: 94d1b3e12c96365344527059d9fc1570856dc06e ANDROID: iommu/arm-smmu-v3-kvm: Use HOST_HVC PD if possible

:::::: TO: Jean-Philippe Brucker <[email protected]>
:::::: CC: Mostafa Saleh <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.