Re: [PATCH v2 3/7] virt: geniezone: Introduce GenieZone hypervisor support

From: kernel test robot
Date: Fri Apr 28 2023 - 16:07:58 EST


Hi Yi-De,

kernel test robot noticed the following build warnings:

[auto build test WARNING on arm64/for-next/core]
[also build test WARNING on robh/for-next arnd-asm-generic/master linus/master v6.3 next-20230428]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Yi-De-Wu/docs-geniezone-Introduce-GenieZone-hypervisor/20230428-183738
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
patch link: https://lore.kernel.org/r/20230428103622.18291-4-yi-de.wu%40mediatek.com
patch subject: [PATCH v2 3/7] virt: geniezone: Introduce GenieZone hypervisor support
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20230429/202304290334.fCw7PKYU-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/0e3f05a6e4547eb309032d047115a47d8f59641d
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Yi-De-Wu/docs-geniezone-Introduce-GenieZone-hypervisor/20230428-183738
git checkout 0e3f05a6e4547eb309032d047115a47d8f59641d
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash arch/arm64/geniezone/ drivers/virt/geniezone/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202304290334.fCw7PKYU-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> arch/arm64/geniezone/gzvm_arch.c:112:5: warning: no previous prototype for 'gzvm_vm_arch_enable_cap' [-Wmissing-prototypes]
112 | int gzvm_vm_arch_enable_cap(struct gzvm *gzvm, struct gzvm_enable_cap *cap,
| ^~~~~~~~~~~~~~~~~~~~~~~
--
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a0' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a1' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a2' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a3' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a4' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a5' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a6' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'a7' not described in 'gzvm_hypcall_wrapper'
arch/arm64/geniezone/gzvm_arch.c:24: warning: Function parameter or member 'res' not described in 'gzvm_hypcall_wrapper'
>> arch/arm64/geniezone/gzvm_arch.c:24: warning: expecting prototype for geniezone_hypercall_wrapper(). Prototype was for gzvm_hypcall_wrapper() instead
arch/arm64/geniezone/gzvm_arch.c:133: warning: Function parameter or member 'gzvm' not described in 'gzvm_vm_ioctl_get_pvmfw_size'
arch/arm64/geniezone/gzvm_arch.c:133: warning: Function parameter or member 'cap' not described in 'gzvm_vm_ioctl_get_pvmfw_size'
arch/arm64/geniezone/gzvm_arch.c:133: warning: Function parameter or member 'argp' not described in 'gzvm_vm_ioctl_get_pvmfw_size'
arch/arm64/geniezone/gzvm_arch.c:155: warning: Function parameter or member 'gzvm' not described in 'gzvm_vm_ioctl_cap_pvm'
arch/arm64/geniezone/gzvm_arch.c:155: warning: Function parameter or member 'cap' not described in 'gzvm_vm_ioctl_cap_pvm'
arch/arm64/geniezone/gzvm_arch.c:155: warning: Function parameter or member 'argp' not described in 'gzvm_vm_ioctl_cap_pvm'


vim +/gzvm_vm_arch_enable_cap +112 arch/arm64/geniezone/gzvm_arch.c

13
14 /**
15 * geniezone_hypercall_wrapper()
16 *
17 * Return: The wrapper helps caller to convert geniezone errno to Linux errno.
18 */
19 static int gzvm_hypcall_wrapper(unsigned long a0, unsigned long a1,
20 unsigned long a2, unsigned long a3,
21 unsigned long a4, unsigned long a5,
22 unsigned long a6, unsigned long a7,
23 struct arm_smccc_res *res)
> 24 {
25 arm_smccc_hvc(a0, a1, a2, a3, a4, a5, a6, a7, res);
26 return gz_err_to_errno(res->a0);
27 }
28
29 int gzvm_arch_probe(void)
30 {
31 struct arm_smccc_res res;
32
33 arm_smccc_hvc(MT_HVC_GZVM_PROBE, 0, 0, 0, 0, 0, 0, 0, &res);
34 if (res.a0 == 0)
35 return 0;
36
37 return -ENXIO;
38 }
39
40 int gzvm_arch_set_memregion(gzvm_id_t vm_id, size_t buf_size,
41 phys_addr_t region)
42 {
43 struct arm_smccc_res res;
44
45 return gzvm_hypcall_wrapper(MT_HVC_GZVM_SET_MEMREGION, vm_id,
46 buf_size, region, 0, 0, 0, 0, &res);
47 }
48
49 static int gzvm_cap_arm_vm_ipa_size(void __user *argp)
50 {
51 __u64 value = CONFIG_ARM64_PA_BITS;
52
53 if (copy_to_user(argp, &value, sizeof(__u64)))
54 return -EFAULT;
55
56 return 0;
57 }
58
59 int gzvm_arch_check_extension(struct gzvm *gzvm, __u64 cap, void __user *argp)
60 {
61 int ret = -EOPNOTSUPP;
62
63 switch (cap) {
64 case GZVM_CAP_ARM_PROTECTED_VM: {
65 __u64 success = 1;
66
67 if (copy_to_user(argp, &success, sizeof(__u64)))
68 return -EFAULT;
69 ret = 0;
70 break;
71 }
72 case GZVM_CAP_ARM_VM_IPA_SIZE: {
73 ret = gzvm_cap_arm_vm_ipa_size(argp);
74 break;
75 }
76 default:
77 ret = -EOPNOTSUPP;
78 }
79
80 return ret;
81 }
82
83 /**
84 * gzvm_arch_create_vm()
85 *
86 * Return:
87 * * positive value - VM ID
88 * * -ENOMEM - Memory not enough for storing VM data
89 */
90 int gzvm_arch_create_vm(void)
91 {
92 struct arm_smccc_res res;
93 int ret;
94
95 ret = gzvm_hypcall_wrapper(MT_HVC_GZVM_CREATE_VM, 0, 0, 0, 0, 0, 0, 0,
96 &res);
97
98 if (ret == 0)
99 return res.a1;
100 else
101 return ret;
102 }
103
104 int gzvm_arch_destroy_vm(gzvm_id_t vm_id)
105 {
106 struct arm_smccc_res res;
107
108 return gzvm_hypcall_wrapper(MT_HVC_GZVM_DESTROY_VM, vm_id, 0, 0, 0, 0,
109 0, 0, &res);
110 }
111
> 112 int gzvm_vm_arch_enable_cap(struct gzvm *gzvm, struct gzvm_enable_cap *cap,
113 struct arm_smccc_res *res)
114 {
115 return gzvm_hypcall_wrapper(MT_HVC_GZVM_ENABLE_CAP, gzvm->vm_id,
116 cap->cap, cap->args[0], cap->args[1],
117 cap->args[2], cap->args[3], cap->args[4],
118 res);
119 }
120

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests