Re: [PATCH v4 11/17] x86/clearcpuid: Clear CPUID bit in CPUID faulting

From: kbuild test robot
Date: Tue Mar 05 2019 - 02:43:29 EST


Hi Peter,

I love your patch! Perhaps something to improve:

[auto build test WARNING on kvm/linux-next]
[also build test WARNING on v5.0 next-20190304]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Fenghua-Yu/x86-split_lock-Enable-AC-exception-for-split-locked-accesses/20190305-044643
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: i386-randconfig-a1-201909 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All warnings (new ones prefixed by >>):

In file included from arch/x86/kernel/cpu/intel.c:22:0:
>> arch/x86/include/asm/insn-eval.h:18:58: warning: 'struct insn' declared inside parameter list
void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs);
^
>> arch/x86/include/asm/insn-eval.h:18:58: warning: its scope is only this definition or declaration, which is probably not what you want
arch/x86/include/asm/insn-eval.h:19:53: warning: 'struct insn' declared inside parameter list
int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs);
^
Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls
Cyclomatic Complexity 2 include/linux/bitops.h:get_count_order
Cyclomatic Complexity 1 include/linux/string.h:strnlen
Cyclomatic Complexity 4 include/linux/string.h:strlen
Cyclomatic Complexity 4 include/linux/string.h:memcpy
Cyclomatic Complexity 2 include/linux/string.h:strcpy
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read
Cyclomatic Complexity 1 arch/x86/include/asm/current.h:get_current
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_save_fl
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_restore_fl
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_irq_disable
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_save_flags
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_restore
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_disable
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_save
Cyclomatic Complexity 1 include/linux/jump_label.h:static_key_count
Cyclomatic Complexity 2 include/linux/jump_label.h:static_key_false
Cyclomatic Complexity 1 arch/x86/include/asm/ptrace.h:user_64bit_mode
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:__rdmsr
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:__wrmsr
Cyclomatic Complexity 2 arch/x86/include/asm/msr.h:native_read_msr
Cyclomatic Complexity 2 arch/x86/include/asm/msr.h:native_read_msr_safe
Cyclomatic Complexity 2 arch/x86/include/asm/msr.h:native_write_msr
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:wrmsrl
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:rdmsrl_safe
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:native_cpuid
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:native_cpuid_eax
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpuid
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpuid_count
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpuid_eax
Cyclomatic Complexity 2 include/linux/thread_info.h:test_ti_thread_flag
Cyclomatic Complexity 2 include/linux/thread_info.h:check_object_size
Cyclomatic Complexity 2 include/linux/thread_info.h:copy_overflow
Cyclomatic Complexity 4 include/linux/thread_info.h:check_copy_size
Cyclomatic Complexity 2 include/linux/uaccess.h:copy_from_user
Cyclomatic Complexity 1 arch/x86/include/asm/microcode_intel.h:intel_get_microcode_revision
Cyclomatic Complexity 1 arch/x86/kernel/cpu/intel.c:forcempx_setup
Cyclomatic Complexity 1 arch/x86/kernel/cpu/intel.c:ring3mwait_disable
Cyclomatic Complexity 5 arch/x86/kernel/cpu/intel.c:probe_xeon_phi_r3mwait
Cyclomatic Complexity 6 arch/x86/kernel/cpu/intel.c:bad_spectre_microcode
Cyclomatic Complexity 1 arch/x86/kernel/cpu/intel.c:forcepae_setup
Cyclomatic Complexity 1 arch/x86/kernel/cpu/intel.c:srat_detect_node
Cyclomatic Complexity 4 arch/x86/kernel/cpu/intel.c:init_cpuid_fault
Cyclomatic Complexity 2 arch/x86/kernel/cpu/intel.c:init_intel_misc_features
Cyclomatic Complexity 4 arch/x86/kernel/cpu/intel.c:intel_size_cache
Cyclomatic Complexity 38 arch/x86/kernel/cpu/intel.c:intel_tlb_lookup
Cyclomatic Complexity 6 arch/x86/kernel/cpu/intel.c:intel_detect_tlb
Cyclomatic Complexity 5 arch/x86/kernel/cpu/intel.c:init_intel_energy_perf
Cyclomatic Complexity 1 arch/x86/kernel/cpu/intel.c:intel_bsp_resume
Cyclomatic Complexity 16 arch/x86/kernel/cpu/intel.c:detect_tme
Cyclomatic Complexity 9 arch/x86/kernel/cpu/intel.c:intel_smp_check
Cyclomatic Complexity 9 arch/x86/kernel/cpu/intel.c:detect_vmx_virtcap
Cyclomatic Complexity 13 arch/x86/kernel/cpu/intel.c:intel_workarounds
Cyclomatic Complexity 1 arch/x86/include/asm/microcode.h:exit_amd_microcode
Cyclomatic Complexity 4 arch/x86/kernel/cpu/intel.c:check_mpx_erratum
Cyclomatic Complexity 37 arch/x86/kernel/cpu/intel.c:early_init_intel
Cyclomatic Complexity 30 arch/x86/kernel/cpu/intel.c:init_intel
Cyclomatic Complexity 3 arch/x86/kernel/cpu/intel.c:ppro_with_ram_bug
Cyclomatic Complexity 8 arch/x86/kernel/cpu/intel.c:fixup_cpuid_exception
Cyclomatic Complexity 4 arch/x86/kernel/cpu/intel.c:init_core_capability
--
In file included from arch/x86//kernel/cpu/intel.c:22:0:
>> arch/x86/include/asm/insn-eval.h:18:58: warning: 'struct insn' declared inside parameter list
void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs);
^
>> arch/x86/include/asm/insn-eval.h:18:58: warning: its scope is only this definition or declaration, which is probably not what you want
arch/x86/include/asm/insn-eval.h:19:53: warning: 'struct insn' declared inside parameter list
int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs);
^
Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 1 include/linux/kasan-checks.h:kasan_check_read
Cyclomatic Complexity 2 arch/x86/include/asm/bitops.h:set_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:variable_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:fls
Cyclomatic Complexity 2 include/linux/bitops.h:get_count_order
Cyclomatic Complexity 1 include/linux/string.h:strnlen
Cyclomatic Complexity 4 include/linux/string.h:strlen
Cyclomatic Complexity 4 include/linux/string.h:memcpy
Cyclomatic Complexity 2 include/linux/string.h:strcpy
Cyclomatic Complexity 1 arch/x86/include/asm/atomic.h:arch_atomic_read
Cyclomatic Complexity 1 include/asm-generic/atomic-instrumented.h:atomic_read
Cyclomatic Complexity 1 arch/x86/include/asm/current.h:get_current
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_save_fl
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_restore_fl
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:native_irq_disable
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_save_flags
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_restore
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_disable
Cyclomatic Complexity 1 arch/x86/include/asm/irqflags.h:arch_local_irq_save
Cyclomatic Complexity 1 include/linux/jump_label.h:static_key_count
Cyclomatic Complexity 2 include/linux/jump_label.h:static_key_false
Cyclomatic Complexity 1 arch/x86/include/asm/ptrace.h:user_64bit_mode
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:__rdmsr
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:__wrmsr
Cyclomatic Complexity 2 arch/x86/include/asm/msr.h:native_read_msr
Cyclomatic Complexity 2 arch/x86/include/asm/msr.h:native_read_msr_safe
Cyclomatic Complexity 2 arch/x86/include/asm/msr.h:native_write_msr
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:wrmsrl
Cyclomatic Complexity 1 arch/x86/include/asm/msr.h:rdmsrl_safe
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:native_cpuid
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:native_cpuid_eax
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpuid
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpuid_count
Cyclomatic Complexity 1 arch/x86/include/asm/processor.h:cpuid_eax
Cyclomatic Complexity 2 include/linux/thread_info.h:test_ti_thread_flag
Cyclomatic Complexity 2 include/linux/thread_info.h:check_object_size
Cyclomatic Complexity 2 include/linux/thread_info.h:copy_overflow
Cyclomatic Complexity 4 include/linux/thread_info.h:check_copy_size
Cyclomatic Complexity 2 include/linux/uaccess.h:copy_from_user
Cyclomatic Complexity 1 arch/x86/include/asm/microcode_intel.h:intel_get_microcode_revision
Cyclomatic Complexity 1 arch/x86//kernel/cpu/intel.c:forcempx_setup
Cyclomatic Complexity 1 arch/x86//kernel/cpu/intel.c:ring3mwait_disable
Cyclomatic Complexity 5 arch/x86//kernel/cpu/intel.c:probe_xeon_phi_r3mwait
Cyclomatic Complexity 6 arch/x86//kernel/cpu/intel.c:bad_spectre_microcode
Cyclomatic Complexity 1 arch/x86//kernel/cpu/intel.c:forcepae_setup
Cyclomatic Complexity 1 arch/x86//kernel/cpu/intel.c:srat_detect_node
Cyclomatic Complexity 4 arch/x86//kernel/cpu/intel.c:init_cpuid_fault
Cyclomatic Complexity 2 arch/x86//kernel/cpu/intel.c:init_intel_misc_features
Cyclomatic Complexity 4 arch/x86//kernel/cpu/intel.c:intel_size_cache
Cyclomatic Complexity 38 arch/x86//kernel/cpu/intel.c:intel_tlb_lookup
Cyclomatic Complexity 6 arch/x86//kernel/cpu/intel.c:intel_detect_tlb
Cyclomatic Complexity 5 arch/x86//kernel/cpu/intel.c:init_intel_energy_perf
Cyclomatic Complexity 1 arch/x86//kernel/cpu/intel.c:intel_bsp_resume
Cyclomatic Complexity 16 arch/x86//kernel/cpu/intel.c:detect_tme
Cyclomatic Complexity 9 arch/x86//kernel/cpu/intel.c:intel_smp_check
Cyclomatic Complexity 9 arch/x86//kernel/cpu/intel.c:detect_vmx_virtcap
Cyclomatic Complexity 13 arch/x86//kernel/cpu/intel.c:intel_workarounds
Cyclomatic Complexity 1 arch/x86/include/asm/microcode.h:exit_amd_microcode
Cyclomatic Complexity 4 arch/x86//kernel/cpu/intel.c:check_mpx_erratum
Cyclomatic Complexity 37 arch/x86//kernel/cpu/intel.c:early_init_intel
Cyclomatic Complexity 30 arch/x86//kernel/cpu/intel.c:init_intel
Cyclomatic Complexity 3 arch/x86//kernel/cpu/intel.c:ppro_with_ram_bug
Cyclomatic Complexity 8 arch/x86//kernel/cpu/intel.c:fixup_cpuid_exception
Cyclomatic Complexity 4 arch/x86//kernel/cpu/intel.c:init_core_capability

vim +18 arch/x86/include/asm/insn-eval.h

4efea85f Ricardo Neri 2017-10-27 17
32542ee2 Ricardo Neri 2017-10-27 @18 void __user *insn_get_addr_ref(struct insn *insn, struct pt_regs *regs);
e5e45f11 Ricardo Neri 2017-10-27 19 int insn_get_modrm_rm_off(struct insn *insn, struct pt_regs *regs);
bd5a410a Ricardo Neri 2017-10-27 20 unsigned long insn_get_seg_base(struct pt_regs *regs, int seg_reg_idx);
e2a5dca7 Borislav Petkov 2017-11-23 21 int insn_get_code_seg_params(struct pt_regs *regs);
32542ee2 Ricardo Neri 2017-10-27 22

:::::: The code at line 18 was first introduced by commit
:::::: 32542ee295bec38e5e1608f8c9d6d28e5a7e6112 x86/mpx, x86/insn: Relocate insn util functions to a new insn-eval file

:::::: TO: Ricardo Neri <ricardo.neri-calderon@xxxxxxxxxxxxxxx>
:::::: CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip