Re: [PATCH] ptp: kvm: Use decrypted memory in confidential guest on x86

kernel test robot
2023-02-21T09:18:17Z

Hi Jeremi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on horms-ipvs/master]
[also build test ERROR on mst-vhost/linux-next net/master net-next/master linus/master v6.2]
[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/Jeremi-Piotrowski/ptp-kvm-Use-decrypted-memory-in-confidential-guest-on-x86/20230220-210441
base: https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
patch link: https://lore.kernel.org/r/20230220130235.2603366-1-jpiotrowski%40linux.microsoft.com
patch subject: [PATCH] ptp: kvm: Use decrypted memory in confidential guest on x86
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230221/202302211746.oclm0ibu-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/0dd1701fd254692af3d0ca051e092e8dcef190c4
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Jeremi-Piotrowski/ptp-kvm-Use-decrypted-memory-in-confidential-guest-on-x86/20230220-210441
git checkout 0dd1701fd254692af3d0ca051e092e8dcef190c4
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 olddefconfig
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/

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

All errors (new ones prefixed by >>):

drivers/ptp/ptp_kvm_x86.c: In function 'kvm_arch_ptp_init':
>> drivers/ptp/ptp_kvm_x86.c:63:9: error: implicit declaration of function 'kvm_arch_ptp_exit'; did you mean 'kvm_arch_ptp_init'? [-Werror=implicit-function-declaration]
63 | kvm_arch_ptp_exit();
| ^~~~~~~~~~~~~~~~~
| kvm_arch_ptp_init
drivers/ptp/ptp_kvm_x86.c: At top level:
drivers/ptp/ptp_kvm_x86.c:68:6: warning: no previous prototype for 'kvm_arch_ptp_exit' [-Wmissing-prototypes]
68 | void kvm_arch_ptp_exit(void)
| ^~~~~~~~~~~~~~~~~
drivers/ptp/ptp_kvm_x86.c:68:6: warning: conflicting types for 'kvm_arch_ptp_exit'; have 'void(void)'
drivers/ptp/ptp_kvm_x86.c:63:9: note: previous implicit declaration of 'kvm_arch_ptp_exit' with type 'void(void)'
63 | kvm_arch_ptp_exit();
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/ptp/ptp_kvm_common.c: In function 'ptp_kvm_exit':
>> drivers/ptp/ptp_kvm_common.c:133:9: error: implicit declaration of function 'kvm_arch_ptp_exit'; did you mean 'kvm_arch_ptp_init'? [-Werror=implicit-function-declaration]
133 | kvm_arch_ptp_exit();
| ^~~~~~~~~~~~~~~~~
| kvm_arch_ptp_init
cc1: some warnings being treated as errors

vim +63 drivers/ptp/ptp_kvm_x86.c

22
23 int kvm_arch_ptp_init(void)
24 {
25 struct page *p;
26 long ret;
27
28 if (!kvm_para_available())
29 return -ENODEV;
30
31 if (cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)) {
32 p = alloc_page(GFP_KERNEL | __GFP_ZERO);
33 if (!p)
34 return -ENOMEM;
35
36 clock_pair = page_address(p);
37 ret = set_memory_decrypted((unsigned long)clock_pair, 1);
38 if (ret) {
39 __free_page(p);
40 clock_pair = NULL;
41 goto nofree;
42 }
43 } else {
44 clock_pair = &clock_pair_glbl;
45 }
46
47 clock_pair_gpa = slow_virt_to_phys(clock_pair);
48 if (!pvclock_get_pvti_cpu0_va()) {
49 ret = -ENODEV;
50 goto err;
51 }
52
53 ret = kvm_hypercall2(KVM_HC_CLOCK_PAIRING, clock_pair_gpa,
54 KVM_CLOCK_PAIRING_WALLCLOCK);
55 if (ret == -KVM_ENOSYS) {
56 ret = -ENODEV;
57 goto err;
58 }
59
60 return ret;
61
62 err:
> 63 kvm_arch_ptp_exit();
64 nofree:
65 return ret;
66 }
67