All of lore.kernel.org
 help / color / mirror / Atom feed
* [sean-jc:x86/virt_enable_less_sucky 2/4] arch/x86/include/asm/kvm_host.h:1609:2: error: unknown type name 'cpu_emergency_virt_cb'
@ 2024-04-19 23:42 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-04-19 23:42 UTC (permalink / raw)
  To: Sean Christopherson; +Cc: oe-kbuild-all

tree:   https://github.com/sean-jc/linux x86/virt_enable_less_sucky
head:   5a4973b46ba550977b8ad51970f8a26494e65a8f
commit: eb37cd848b9a267681c225f1a6a0176cfe7c088c [2/4] KVM: x86: Register emergency virt callback in common code, via kvm_x86_ops
config: i386-buildonly-randconfig-003-20240420 (https://download.01.org/0day-ci/archive/20240420/202404200746.R3izLrf2-lkp@intel.com/config)
compiler: gcc-8 (Ubuntu 8.4.0-3ubuntu2) 8.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240420/202404200746.R3izLrf2-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202404200746.R3izLrf2-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/kvm_host.h:45,
                    from arch/x86/events/intel/core.c:17:
>> arch/x86/include/asm/kvm_host.h:1609:2: error: unknown type name 'cpu_emergency_virt_cb'
     cpu_emergency_virt_cb *emergency_disable;
     ^~~~~~~~~~~~~~~~~~~~~


vim +/cpu_emergency_virt_cb +1609 arch/x86/include/asm/kvm_host.h

  1601	
  1602	struct kvm_x86_ops {
  1603		const char *name;
  1604	
  1605		int (*check_processor_compatibility)(void);
  1606	
  1607		int (*hardware_enable)(void);
  1608		void (*hardware_disable)(void);
> 1609		cpu_emergency_virt_cb *emergency_disable;
  1610	
  1611		void (*hardware_unsetup)(void);
  1612		bool (*has_emulated_msr)(struct kvm *kvm, u32 index);
  1613		void (*vcpu_after_set_cpuid)(struct kvm_vcpu *vcpu);
  1614	
  1615		unsigned int vm_size;
  1616		int (*vm_init)(struct kvm *kvm);
  1617		void (*vm_destroy)(struct kvm *kvm);
  1618	
  1619		/* Create, but do not attach this VCPU */
  1620		int (*vcpu_precreate)(struct kvm *kvm);
  1621		int (*vcpu_create)(struct kvm_vcpu *vcpu);
  1622		void (*vcpu_free)(struct kvm_vcpu *vcpu);
  1623		void (*vcpu_reset)(struct kvm_vcpu *vcpu, bool init_event);
  1624	
  1625		void (*prepare_switch_to_guest)(struct kvm_vcpu *vcpu);
  1626		void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu);
  1627		void (*vcpu_put)(struct kvm_vcpu *vcpu);
  1628	
  1629		void (*update_exception_bitmap)(struct kvm_vcpu *vcpu);
  1630		int (*get_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
  1631		int (*set_msr)(struct kvm_vcpu *vcpu, struct msr_data *msr);
  1632		u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg);
  1633		void (*get_segment)(struct kvm_vcpu *vcpu,
  1634				    struct kvm_segment *var, int seg);
  1635		int (*get_cpl)(struct kvm_vcpu *vcpu);
  1636		void (*set_segment)(struct kvm_vcpu *vcpu,
  1637				    struct kvm_segment *var, int seg);
  1638		void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l);
  1639		bool (*is_valid_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
  1640		void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0);
  1641		void (*post_set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3);
  1642		bool (*is_valid_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4);
  1643		void (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4);
  1644		int (*set_efer)(struct kvm_vcpu *vcpu, u64 efer);
  1645		void (*get_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
  1646		void (*set_idt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
  1647		void (*get_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
  1648		void (*set_gdt)(struct kvm_vcpu *vcpu, struct desc_ptr *dt);
  1649		void (*sync_dirty_debug_regs)(struct kvm_vcpu *vcpu);
  1650		void (*set_dr7)(struct kvm_vcpu *vcpu, unsigned long value);
  1651		void (*cache_reg)(struct kvm_vcpu *vcpu, enum kvm_reg reg);
  1652		unsigned long (*get_rflags)(struct kvm_vcpu *vcpu);
  1653		void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags);
  1654		bool (*get_if_flag)(struct kvm_vcpu *vcpu);
  1655	
  1656		void (*flush_tlb_all)(struct kvm_vcpu *vcpu);
  1657		void (*flush_tlb_current)(struct kvm_vcpu *vcpu);
  1658	#if IS_ENABLED(CONFIG_HYPERV)
  1659		int  (*flush_remote_tlbs)(struct kvm *kvm);
  1660		int  (*flush_remote_tlbs_range)(struct kvm *kvm, gfn_t gfn,
  1661						gfn_t nr_pages);
  1662	#endif
  1663	
  1664		/*
  1665		 * Flush any TLB entries associated with the given GVA.
  1666		 * Does not need to flush GPA->HPA mappings.
  1667		 * Can potentially get non-canonical addresses through INVLPGs, which
  1668		 * the implementation may choose to ignore if appropriate.
  1669		 */
  1670		void (*flush_tlb_gva)(struct kvm_vcpu *vcpu, gva_t addr);
  1671	
  1672		/*
  1673		 * Flush any TLB entries created by the guest.  Like tlb_flush_gva(),
  1674		 * does not need to flush GPA->HPA mappings.
  1675		 */
  1676		void (*flush_tlb_guest)(struct kvm_vcpu *vcpu);
  1677	
  1678		int (*vcpu_pre_run)(struct kvm_vcpu *vcpu);
  1679		enum exit_fastpath_completion (*vcpu_run)(struct kvm_vcpu *vcpu,
  1680							  bool force_immediate_exit);
  1681		int (*handle_exit)(struct kvm_vcpu *vcpu,
  1682			enum exit_fastpath_completion exit_fastpath);
  1683		int (*skip_emulated_instruction)(struct kvm_vcpu *vcpu);
  1684		void (*update_emulated_instruction)(struct kvm_vcpu *vcpu);
  1685		void (*set_interrupt_shadow)(struct kvm_vcpu *vcpu, int mask);
  1686		u32 (*get_interrupt_shadow)(struct kvm_vcpu *vcpu);
  1687		void (*patch_hypercall)(struct kvm_vcpu *vcpu,
  1688					unsigned char *hypercall_addr);
  1689		void (*inject_irq)(struct kvm_vcpu *vcpu, bool reinjected);
  1690		void (*inject_nmi)(struct kvm_vcpu *vcpu);
  1691		void (*inject_exception)(struct kvm_vcpu *vcpu);
  1692		void (*cancel_injection)(struct kvm_vcpu *vcpu);
  1693		int (*interrupt_allowed)(struct kvm_vcpu *vcpu, bool for_injection);
  1694		int (*nmi_allowed)(struct kvm_vcpu *vcpu, bool for_injection);
  1695		bool (*get_nmi_mask)(struct kvm_vcpu *vcpu);
  1696		void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked);
  1697		/* Whether or not a virtual NMI is pending in hardware. */
  1698		bool (*is_vnmi_pending)(struct kvm_vcpu *vcpu);
  1699		/*
  1700		 * Attempt to pend a virtual NMI in hardware.  Returns %true on success
  1701		 * to allow using static_call_ret0 as the fallback.
  1702		 */
  1703		bool (*set_vnmi_pending)(struct kvm_vcpu *vcpu);
  1704		void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
  1705		void (*enable_irq_window)(struct kvm_vcpu *vcpu);
  1706		void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
  1707		bool (*check_apicv_inhibit_reasons)(enum kvm_apicv_inhibit reason);
  1708		const unsigned long required_apicv_inhibits;
  1709		bool allow_apicv_in_x2apic_without_x2apic_virtualization;
  1710		void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *vcpu);
  1711		void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr);
  1712		void (*hwapic_isr_update)(int isr);
  1713		bool (*guest_apic_has_interrupt)(struct kvm_vcpu *vcpu);
  1714		void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap);
  1715		void (*set_virtual_apic_mode)(struct kvm_vcpu *vcpu);
  1716		void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu);
  1717		void (*deliver_interrupt)(struct kvm_lapic *apic, int delivery_mode,
  1718					  int trig_mode, int vector);
  1719		int (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
  1720		int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
  1721		int (*set_identity_map_addr)(struct kvm *kvm, u64 ident_addr);
  1722		u8 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio);
  1723	
  1724		void (*load_mmu_pgd)(struct kvm_vcpu *vcpu, hpa_t root_hpa,
  1725				     int root_level);
  1726	
  1727		bool (*has_wbinvd_exit)(void);
  1728	
  1729		u64 (*get_l2_tsc_offset)(struct kvm_vcpu *vcpu);
  1730		u64 (*get_l2_tsc_multiplier)(struct kvm_vcpu *vcpu);
  1731		void (*write_tsc_offset)(struct kvm_vcpu *vcpu);
  1732		void (*write_tsc_multiplier)(struct kvm_vcpu *vcpu);
  1733	
  1734		/*
  1735		 * Retrieve somewhat arbitrary exit information.  Intended to
  1736		 * be used only from within tracepoints or error paths.
  1737		 */
  1738		void (*get_exit_info)(struct kvm_vcpu *vcpu, u32 *reason,
  1739				      u64 *info1, u64 *info2,
  1740				      u32 *exit_int_info, u32 *exit_int_info_err_code);
  1741	
  1742		int (*check_intercept)(struct kvm_vcpu *vcpu,
  1743				       struct x86_instruction_info *info,
  1744				       enum x86_intercept_stage stage,
  1745				       struct x86_exception *exception);
  1746		void (*handle_exit_irqoff)(struct kvm_vcpu *vcpu);
  1747	
  1748		void (*sched_in)(struct kvm_vcpu *vcpu, int cpu);
  1749	
  1750		/*
  1751		 * Size of the CPU's dirty log buffer, i.e. VMX's PML buffer.  A zero
  1752		 * value indicates CPU dirty logging is unsupported or disabled.
  1753		 */
  1754		int cpu_dirty_log_size;
  1755		void (*update_cpu_dirty_logging)(struct kvm_vcpu *vcpu);
  1756	
  1757		const struct kvm_x86_nested_ops *nested_ops;
  1758	
  1759		void (*vcpu_blocking)(struct kvm_vcpu *vcpu);
  1760		void (*vcpu_unblocking)(struct kvm_vcpu *vcpu);
  1761	
  1762		int (*pi_update_irte)(struct kvm *kvm, unsigned int host_irq,
  1763				      uint32_t guest_irq, bool set);
  1764		void (*pi_start_assignment)(struct kvm *kvm);
  1765		void (*apicv_pre_state_restore)(struct kvm_vcpu *vcpu);
  1766		void (*apicv_post_state_restore)(struct kvm_vcpu *vcpu);
  1767		bool (*dy_apicv_has_pending_interrupt)(struct kvm_vcpu *vcpu);
  1768	
  1769		int (*set_hv_timer)(struct kvm_vcpu *vcpu, u64 guest_deadline_tsc,
  1770				    bool *expired);
  1771		void (*cancel_hv_timer)(struct kvm_vcpu *vcpu);
  1772	
  1773		void (*setup_mce)(struct kvm_vcpu *vcpu);
  1774	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-04-19 23:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-19 23:42 [sean-jc:x86/virt_enable_less_sucky 2/4] arch/x86/include/asm/kvm_host.h:1609:2: error: unknown type name 'cpu_emergency_virt_cb' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.