Re: [PATCH 3/4] KVM: nSVM: implement check_nested_events for interrupts

From: kbuild test robot
Date: Thu Mar 05 2020 - 18:52:26 EST


Hi Paolo,

I love your patch! Yet something to improve:

[auto build test ERROR on kvm/linux-next]
[also build test ERROR on linus/master v5.6-rc4 next-20200305]
[cannot apply to linux/master vhost/linux-next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Paolo-Bonzini/KVM-nSVM-first-step-towards-fixing-event-injection/20200306-015933
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: x86_64-rhel (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> arch/x86//kvm/svm.c:7538:25: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.check_nested_events = svm_check_nested_events,
^~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kvm/svm.c:7538:25: note: (near initialization for 'svm_x86_ops.check_nested_events')
cc1: all warnings being treated as errors

vim +7538 arch/x86//kvm/svm.c

7396
7397 static struct kvm_x86_ops svm_x86_ops __ro_after_init = {
7398 .cpu_has_kvm_support = has_svm,
7399 .disabled_by_bios = is_disabled,
7400 .hardware_setup = svm_hardware_setup,
7401 .hardware_unsetup = svm_hardware_teardown,
7402 .check_processor_compatibility = svm_check_processor_compat,
7403 .hardware_enable = svm_hardware_enable,
7404 .hardware_disable = svm_hardware_disable,
7405 .cpu_has_accelerated_tpr = svm_cpu_has_accelerated_tpr,
7406 .has_emulated_msr = svm_has_emulated_msr,
7407
7408 .vcpu_create = svm_create_vcpu,
7409 .vcpu_free = svm_free_vcpu,
7410 .vcpu_reset = svm_vcpu_reset,
7411
7412 .vm_alloc = svm_vm_alloc,
7413 .vm_free = svm_vm_free,
7414 .vm_init = svm_vm_init,
7415 .vm_destroy = svm_vm_destroy,
7416
7417 .prepare_guest_switch = svm_prepare_guest_switch,
7418 .vcpu_load = svm_vcpu_load,
7419 .vcpu_put = svm_vcpu_put,
7420 .vcpu_blocking = svm_vcpu_blocking,
7421 .vcpu_unblocking = svm_vcpu_unblocking,
7422
7423 .update_bp_intercept = update_bp_intercept,
7424 .get_msr_feature = svm_get_msr_feature,
7425 .get_msr = svm_get_msr,
7426 .set_msr = svm_set_msr,
7427 .get_segment_base = svm_get_segment_base,
7428 .get_segment = svm_get_segment,
7429 .set_segment = svm_set_segment,
7430 .get_cpl = svm_get_cpl,
7431 .get_cs_db_l_bits = kvm_get_cs_db_l_bits,
7432 .decache_cr0_guest_bits = svm_decache_cr0_guest_bits,
7433 .decache_cr4_guest_bits = svm_decache_cr4_guest_bits,
7434 .set_cr0 = svm_set_cr0,
7435 .set_cr3 = svm_set_cr3,
7436 .set_cr4 = svm_set_cr4,
7437 .set_efer = svm_set_efer,
7438 .get_idt = svm_get_idt,
7439 .set_idt = svm_set_idt,
7440 .get_gdt = svm_get_gdt,
7441 .set_gdt = svm_set_gdt,
7442 .get_dr6 = svm_get_dr6,
7443 .set_dr6 = svm_set_dr6,
7444 .set_dr7 = svm_set_dr7,
7445 .sync_dirty_debug_regs = svm_sync_dirty_debug_regs,
7446 .cache_reg = svm_cache_reg,
7447 .get_rflags = svm_get_rflags,
7448 .set_rflags = svm_set_rflags,
7449
7450 .tlb_flush = svm_flush_tlb,
7451 .tlb_flush_gva = svm_flush_tlb_gva,
7452
7453 .run = svm_vcpu_run,
7454 .handle_exit = handle_exit,
7455 .skip_emulated_instruction = skip_emulated_instruction,
7456 .update_emulated_instruction = NULL,
7457 .set_interrupt_shadow = svm_set_interrupt_shadow,
7458 .get_interrupt_shadow = svm_get_interrupt_shadow,
7459 .patch_hypercall = svm_patch_hypercall,
7460 .set_irq = svm_set_irq,
7461 .set_nmi = svm_inject_nmi,
7462 .queue_exception = svm_queue_exception,
7463 .cancel_injection = svm_cancel_injection,
7464 .interrupt_allowed = svm_interrupt_allowed,
7465 .nmi_allowed = svm_nmi_allowed,
7466 .get_nmi_mask = svm_get_nmi_mask,
7467 .set_nmi_mask = svm_set_nmi_mask,
7468 .enable_nmi_window = enable_nmi_window,
7469 .enable_irq_window = enable_irq_window,
7470 .update_cr8_intercept = update_cr8_intercept,
7471 .set_virtual_apic_mode = svm_set_virtual_apic_mode,
7472 .refresh_apicv_exec_ctrl = svm_refresh_apicv_exec_ctrl,
7473 .check_apicv_inhibit_reasons = svm_check_apicv_inhibit_reasons,
7474 .pre_update_apicv_exec_ctrl = svm_pre_update_apicv_exec_ctrl,
7475 .load_eoi_exitmap = svm_load_eoi_exitmap,
7476 .hwapic_irr_update = svm_hwapic_irr_update,
7477 .hwapic_isr_update = svm_hwapic_isr_update,
7478 .sync_pir_to_irr = kvm_lapic_find_highest_irr,
7479 .apicv_post_state_restore = avic_post_state_restore,
7480
7481 .set_tss_addr = svm_set_tss_addr,
7482 .set_identity_map_addr = svm_set_identity_map_addr,
7483 .get_tdp_level = get_npt_level,
7484 .get_mt_mask = svm_get_mt_mask,
7485
7486 .get_exit_info = svm_get_exit_info,
7487
7488 .get_lpage_level = svm_get_lpage_level,
7489
7490 .cpuid_update = svm_cpuid_update,
7491
7492 .rdtscp_supported = svm_rdtscp_supported,
7493 .invpcid_supported = svm_invpcid_supported,
7494 .mpx_supported = svm_mpx_supported,
7495 .xsaves_supported = svm_xsaves_supported,
7496 .umip_emulated = svm_umip_emulated,
7497 .pt_supported = svm_pt_supported,
7498 .pku_supported = svm_pku_supported,
7499
7500 .set_supported_cpuid = svm_set_supported_cpuid,
7501
7502 .has_wbinvd_exit = svm_has_wbinvd_exit,
7503
7504 .read_l1_tsc_offset = svm_read_l1_tsc_offset,
7505 .write_l1_tsc_offset = svm_write_l1_tsc_offset,
7506
7507 .set_tdp_cr3 = set_tdp_cr3,
7508
7509 .check_intercept = svm_check_intercept,
7510 .handle_exit_irqoff = svm_handle_exit_irqoff,
7511
7512 .request_immediate_exit = __kvm_request_immediate_exit,
7513
7514 .sched_in = svm_sched_in,
7515
7516 .pmu_ops = &amd_pmu_ops,
7517 .deliver_posted_interrupt = svm_deliver_avic_intr,
7518 .dy_apicv_has_pending_interrupt = svm_dy_apicv_has_pending_interrupt,
7519 .update_pi_irte = svm_update_pi_irte,
7520 .setup_mce = svm_setup_mce,
7521
7522 .smi_allowed = svm_smi_allowed,
7523 .pre_enter_smm = svm_pre_enter_smm,
7524 .pre_leave_smm = svm_pre_leave_smm,
7525 .enable_smi_window = enable_smi_window,
7526
7527 .mem_enc_op = svm_mem_enc_op,
7528 .mem_enc_reg_region = svm_register_enc_region,
7529 .mem_enc_unreg_region = svm_unregister_enc_region,
7530
7531 .nested_enable_evmcs = NULL,
7532 .nested_get_evmcs_version = NULL,
7533
7534 .need_emulation_on_page_fault = svm_need_emulation_on_page_fault,
7535
7536 .apic_init_signal_blocked = svm_apic_init_signal_blocked,
7537
> 7538 .check_nested_events = svm_check_nested_events,
7539 };
7540

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip