[arm-platforms:kvm-arm64/pmu-chained 11/12] arch/arm64/kvm/sys_regs.c:657:14: error: implicit declaration of function 'kvm_pmu_is_3p5'

kernel test robot lkp at intel.com
Thu Aug 4 09:33:08 PDT 2022


tree:   https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm64/pmu-chained
head:   25e7e43793084f1e12b6d2af4b88e5aed1e3cc38
commit: 8f19cbf8bf872b305553565193ffd1f995226356 [11/12] Implement long counter support
config: arm64-buildonly-randconfig-r005-20220804 (https://download.01.org/0day-ci/archive/20220805/202208050057.DLMqWhpP-lkp@intel.com/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://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?id=8f19cbf8bf872b305553565193ffd1f995226356
        git remote add arm-platforms https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
        git fetch --no-tags arm-platforms kvm-arm64/pmu-chained
        git checkout 8f19cbf8bf872b305553565193ffd1f995226356
        # 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 SHELL=/bin/bash arch/arm64/kvm/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   arch/arm64/kvm/sys_regs.c: In function 'reset_pmcr':
>> arch/arm64/kvm/sys_regs.c:657:14: error: implicit declaration of function 'kvm_pmu_is_3p5' [-Werror=implicit-function-declaration]
     657 |         if (!kvm_pmu_is_3p5(vcpu))
         |              ^~~~~~~~~~~~~~
   arch/arm64/kvm/sys_regs.c: At top level:
   arch/arm64/kvm/sys_regs.c:1678:20: warning: initialized field overwritten [-Woverride-init]
    1678 |           .reset = reset_pmcr, .reg = PMCR_EL0 },
         |                    ^~~~~~~~~~
   arch/arm64/kvm/sys_regs.c:1678:20: note: (near initialization for 'sys_reg_descs[220].reset')
   In file included from include/uapi/linux/posix_types.h:5,
                    from include/uapi/linux/types.h:14,
                    from include/linux/types.h:6,
                    from include/linux/kasan-checks.h:5,
                    from include/asm-generic/rwonce.h:26,
                    from arch/arm64/include/asm/rwonce.h:71,
                    from include/linux/compiler.h:248,
                    from include/linux/build_bug.h:5,
                    from include/linux/bitfield.h:10,
                    from arch/arm64/kvm/sys_regs.c:12:
   include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1691:46: note: in expansion of macro 'NULL'
    1691 |           .access = access_pmswinc, .reset = NULL },
         |                                              ^~~~
   include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[224].reset')
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1691:46: note: in expansion of macro 'NULL'
    1691 |           .access = access_pmswinc, .reset = NULL },
         |                                              ^~~~
   arch/arm64/kvm/sys_regs.c:1693:45: warning: initialized field overwritten [-Woverride-init]
    1693 |           .access = access_pmselr, .reset = reset_pmselr, .reg = PMSELR_EL0 },
         |                                             ^~~~~~~~~~~~
   arch/arm64/kvm/sys_regs.c:1693:45: note: (near initialization for 'sys_reg_descs[225].reset')
   include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1695:45: note: in expansion of macro 'NULL'
    1695 |           .access = access_pmceid, .reset = NULL },
         |                                             ^~~~
   include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[226].reset')
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1695:45: note: in expansion of macro 'NULL'
    1695 |           .access = access_pmceid, .reset = NULL },
         |                                             ^~~~
   include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1697:45: note: in expansion of macro 'NULL'
    1697 |           .access = access_pmceid, .reset = NULL },
         |                                             ^~~~
   include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[227].reset')
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1697:45: note: in expansion of macro 'NULL'
    1697 |           .access = access_pmceid, .reset = NULL },
         |                                             ^~~~
   arch/arm64/kvm/sys_regs.c:1699:49: warning: initialized field overwritten [-Woverride-init]
    1699 |           .access = access_pmu_evcntr, .reset = reset_unknown, .reg = PMCCNTR_EL0 },
         |                                                 ^~~~~~~~~~~~~
   arch/arm64/kvm/sys_regs.c:1699:49: note: (near initialization for 'sys_reg_descs[228].reset')
   include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1701:50: note: in expansion of macro 'NULL'
    1701 |           .access = access_pmu_evtyper, .reset = NULL },
         |                                                  ^~~~
   include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[229].reset')
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1701:50: note: in expansion of macro 'NULL'
    1701 |           .access = access_pmu_evtyper, .reset = NULL },
         |                                                  ^~~~
   include/linux/stddef.h:8:14: warning: initialized field overwritten [-Woverride-init]
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1703:49: note: in expansion of macro 'NULL'
    1703 |           .access = access_pmu_evcntr, .reset = NULL },
         |                                                 ^~~~
   include/linux/stddef.h:8:14: note: (near initialization for 'sys_reg_descs[230].reset')
       8 | #define NULL ((void *)0)
         |              ^
   arch/arm64/kvm/sys_regs.c:1703:49: note: in expansion of macro 'NULL'
    1703 |           .access = access_pmu_evcntr, .reset = NULL },
         |                                                 ^~~~
   arch/arm64/kvm/sys_regs.c:1709:20: warning: initialized field overwritten [-Woverride-init]
    1709 |           .reset = reset_val, .reg = PMUSERENR_EL0, .val = 0 },
         |                    ^~~~~~~~~
   arch/arm64/kvm/sys_regs.c:1709:20: note: (near initialization for 'sys_reg_descs[231].reset')
   arch/arm64/kvm/sys_regs.c:990:20: warning: initialized field overwritten [-Woverride-init]
     990 |           .reset = reset_pmevcntr,                                      \
         |                    ^~~~~~~~~~~~~~
   arch/arm64/kvm/sys_regs.c:1797:9: note: in expansion of macro 'PMU_PMEVCNTR_EL0'
    1797 |         PMU_PMEVCNTR_EL0(0),
         |         ^~~~~~~~~~~~~~~~
   arch/arm64/kvm/sys_regs.c:990:20: note: (near initialization for 'sys_reg_descs[312].reset')
     990 |           .reset = reset_pmevcntr,                                      \
         |                    ^~~~~~~~~~~~~~
   arch/arm64/kvm/sys_regs.c:1797:9: note: in expansion of macro 'PMU_PMEVCNTR_EL0'
    1797 |         PMU_PMEVCNTR_EL0(0),


vim +/kvm_pmu_is_3p5 +657 arch/arm64/kvm/sys_regs.c

   639	
   640	static void reset_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
   641	{
   642		u64 pmcr, val;
   643	
   644		/* No PMU available, PMCR_EL0 may UNDEF... */
   645		if (!kvm_arm_support_pmu_v3())
   646			return;
   647	
   648		pmcr = read_sysreg(pmcr_el0);
   649		/*
   650		 * Writable bits of PMCR_EL0 (ARMV8_PMU_PMCR_MASK) are reset to UNKNOWN
   651		 * except PMCR.E resetting to zero.
   652		 */
   653		val = ((pmcr & ~ARMV8_PMU_PMCR_MASK)
   654		       | (ARMV8_PMU_PMCR_MASK & 0xdecafbad)) & (~ARMV8_PMU_PMCR_E);
   655		if (!system_supports_32bit_el0())
   656			val |= ARMV8_PMU_PMCR_LC;
 > 657		if (!kvm_pmu_is_3p5(vcpu))
   658			val &= ~ARMV8_PMU_PMCR_LP;
   659		__vcpu_sys_reg(vcpu, r->reg) = val;
   660	}
   661	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp



More information about the linux-arm-kernel mailing list