[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202203161748.qlx3DIuD-lkp@intel.com>
Date: Wed, 16 Mar 2022 17:30:16 +0800
From: kernel test robot <lkp@...el.com>
To: Nicholas Piggin <npiggin@...il.com>
Cc: kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
Michael Ellerman <mpe@...erman.id.au>,
Fabiano Rosas <farosas@...ux.ibm.com>
Subject: [linuxppc:topic/ppc-kvm 25/25] arch/powerpc/kvm/powerpc.c:716:29:
error: implicit declaration of function 'kvmhv_on_pseries'
tree: https://github.com/linuxppc/linux topic/ppc-kvm
head: f771b55731fc82b1e8e9ef123f6f1b8d8c92bc63
commit: f771b55731fc82b1e8e9ef123f6f1b8d8c92bc63 [25/25] KVM: PPC: Use KVM_CAP_PPC_AIL_MODE_3
config: powerpc-randconfig-c004-20220314 (https://download.01.org/0day-ci/archive/20220316/202203161748.qlx3DIuD-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 11.2.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/linuxppc/linux/commit/f771b55731fc82b1e8e9ef123f6f1b8d8c92bc63
git remote add linuxppc https://github.com/linuxppc/linux
git fetch --no-tags linuxppc topic/ppc-kvm
git checkout f771b55731fc82b1e8e9ef123f6f1b8d8c92bc63
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash arch/powerpc/kvm/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
arch/powerpc/kvm/powerpc.c: In function 'kvm_vm_ioctl_check_extension':
>> arch/powerpc/kvm/powerpc.c:716:29: error: implicit declaration of function 'kvmhv_on_pseries' [-Werror=implicit-function-declaration]
716 | if (kvmhv_on_pseries()) {
| ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/kvmhv_on_pseries +716 arch/powerpc/kvm/powerpc.c
593
594 case KVM_CAP_PPC_ALLOC_HTAB:
595 r = hv_enabled;
596 break;
597 #endif /* CONFIG_PPC_BOOK3S_64 */
598 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
599 case KVM_CAP_PPC_SMT:
600 r = 0;
601 if (kvm) {
602 if (kvm->arch.emul_smt_mode > 1)
603 r = kvm->arch.emul_smt_mode;
604 else
605 r = kvm->arch.smt_mode;
606 } else if (hv_enabled) {
607 if (cpu_has_feature(CPU_FTR_ARCH_300))
608 r = 1;
609 else
610 r = threads_per_subcore;
611 }
612 break;
613 case KVM_CAP_PPC_SMT_POSSIBLE:
614 r = 1;
615 if (hv_enabled) {
616 if (!cpu_has_feature(CPU_FTR_ARCH_300))
617 r = ((threads_per_subcore << 1) - 1);
618 else
619 /* P9 can emulate dbells, so allow any mode */
620 r = 8 | 4 | 2 | 1;
621 }
622 break;
623 case KVM_CAP_PPC_RMA:
624 r = 0;
625 break;
626 case KVM_CAP_PPC_HWRNG:
627 r = kvmppc_hwrng_present();
628 break;
629 case KVM_CAP_PPC_MMU_RADIX:
630 r = !!(hv_enabled && radix_enabled());
631 break;
632 case KVM_CAP_PPC_MMU_HASH_V3:
633 r = !!(hv_enabled && kvmppc_hv_ops->hash_v3_possible &&
634 kvmppc_hv_ops->hash_v3_possible());
635 break;
636 case KVM_CAP_PPC_NESTED_HV:
637 r = !!(hv_enabled && kvmppc_hv_ops->enable_nested &&
638 !kvmppc_hv_ops->enable_nested(NULL));
639 break;
640 #endif
641 case KVM_CAP_SYNC_MMU:
642 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
643 r = hv_enabled;
644 #elif defined(KVM_ARCH_WANT_MMU_NOTIFIER)
645 r = 1;
646 #else
647 r = 0;
648 #endif
649 break;
650 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
651 case KVM_CAP_PPC_HTAB_FD:
652 r = hv_enabled;
653 break;
654 #endif
655 case KVM_CAP_NR_VCPUS:
656 /*
657 * Recommending a number of CPUs is somewhat arbitrary; we
658 * return the number of present CPUs for -HV (since a host
659 * will have secondary threads "offline"), and for other KVM
660 * implementations just count online CPUs.
661 */
662 if (hv_enabled)
663 r = min_t(unsigned int, num_present_cpus(), KVM_MAX_VCPUS);
664 else
665 r = min_t(unsigned int, num_online_cpus(), KVM_MAX_VCPUS);
666 break;
667 case KVM_CAP_MAX_VCPUS:
668 r = KVM_MAX_VCPUS;
669 break;
670 case KVM_CAP_MAX_VCPU_ID:
671 r = KVM_MAX_VCPU_IDS;
672 break;
673 #ifdef CONFIG_PPC_BOOK3S_64
674 case KVM_CAP_PPC_GET_SMMU_INFO:
675 r = 1;
676 break;
677 case KVM_CAP_SPAPR_MULTITCE:
678 r = 1;
679 break;
680 case KVM_CAP_SPAPR_RESIZE_HPT:
681 r = !!hv_enabled;
682 break;
683 #endif
684 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
685 case KVM_CAP_PPC_FWNMI:
686 r = hv_enabled;
687 break;
688 #endif
689 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
690 case KVM_CAP_PPC_HTM:
691 r = !!(cur_cpu_spec->cpu_user_features2 & PPC_FEATURE2_HTM) ||
692 (hv_enabled && cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST));
693 break;
694 #endif
695 #if defined(CONFIG_KVM_BOOK3S_HV_POSSIBLE)
696 case KVM_CAP_PPC_SECURE_GUEST:
697 r = hv_enabled && kvmppc_hv_ops->enable_svm &&
698 !kvmppc_hv_ops->enable_svm(NULL);
699 break;
700 case KVM_CAP_PPC_DAWR1:
701 r = !!(hv_enabled && kvmppc_hv_ops->enable_dawr1 &&
702 !kvmppc_hv_ops->enable_dawr1(NULL));
703 break;
704 case KVM_CAP_PPC_RPT_INVALIDATE:
705 r = 1;
706 break;
707 #endif
708 case KVM_CAP_PPC_AIL_MODE_3:
709 r = 0;
710 /*
711 * KVM PR, POWER7, and some POWER9s don't support AIL=3 mode.
712 * The POWER9s can support it if the guest runs in hash mode,
713 * but QEMU doesn't necessarily query the capability in time.
714 */
715 if (hv_enabled) {
> 716 if (kvmhv_on_pseries()) {
717 if (pseries_reloc_on_exception())
718 r = 1;
719 } else if (cpu_has_feature(CPU_FTR_ARCH_207S) &&
720 !cpu_has_feature(CPU_FTR_P9_RADIX_PREFETCH_BUG)) {
721 r = 1;
722 }
723 }
724 break;
725 default:
726 r = 0;
727 break;
728 }
729 return r;
730
---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists