All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm-x86:exports 60/60] arch/x86/kvm/kvm_onhyperv.c:104:58: error: expected ')' before string constant
@ 2025-09-24 12:15 kernel test robot
  2025-09-24 14:15 ` Sean Christopherson
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2025-09-24 12:15 UTC (permalink / raw)
  To: Sean Christopherson; +Cc: oe-kbuild-all

Hi Sean,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://github.com/kvm-x86/linux exports
head:   ca1831d6ffa3a240830014a0c96633aed6d07367
commit: ca1831d6ffa3a240830014a0c96633aed6d07367 [60/60] KVM: x86: Export KVM-internal symbols for sub-modules only
config: i386-buildonly-randconfig-001-20250924 (https://download.01.org/0day-ci/archive/20250924/202509242018.H6effaVS-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250924/202509242018.H6effaVS-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/202509242018.H6effaVS-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from arch/x86/include/asm/bug.h:5,
                    from include/linux/bug.h:5,
                    from include/linux/alloc_tag.h:8,
                    from include/linux/percpu.h:5,
                    from include/linux/context_tracking_state.h:5,
                    from include/linux/hardirq.h:5,
                    from include/linux/kvm_host.h:7,
                    from arch/x86/kvm/kvm_onhyperv.c:7:
>> arch/x86/kvm/kvm_onhyperv.c:104:58: error: expected ')' before string constant
     104 | EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_flush_remote_tlbs_range);
         |                                                          ^
   include/linux/stringify.h:9:34: note: in definition of macro '__stringify_1'
       9 | #define __stringify_1(x...)     #x
         |                                  ^
   include/linux/kvm_types.h:13:43: note: in expansion of macro '__stringify'
      13 |         EXPORT_SYMBOL_FOR_MODULES(symbol, __stringify(KVM_SUB_MODULES))
         |                                           ^~~~~~~~~~~
   arch/x86/kvm/kvm_onhyperv.c:104:1: note: in expansion of macro 'EXPORT_SYMBOL_FOR_KVM_INTERNAL'
     104 | EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_flush_remote_tlbs_range);
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/kvm_onhyperv.c:110:52: error: expected ')' before string constant
     110 | EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_flush_remote_tlbs);
         |                                                    ^
   include/linux/stringify.h:9:34: note: in definition of macro '__stringify_1'
       9 | #define __stringify_1(x...)     #x
         |                                  ^
   include/linux/kvm_types.h:13:43: note: in expansion of macro '__stringify'
      13 |         EXPORT_SYMBOL_FOR_MODULES(symbol, __stringify(KVM_SUB_MODULES))
         |                                           ^~~~~~~~~~~
   arch/x86/kvm/kvm_onhyperv.c:110:1: note: in expansion of macro 'EXPORT_SYMBOL_FOR_KVM_INTERNAL'
     110 | EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_flush_remote_tlbs);
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/kvm_onhyperv.c:124:49: error: expected ')' before string constant
     124 | EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_track_root_tdp);
         |                                                 ^
   include/linux/stringify.h:9:34: note: in definition of macro '__stringify_1'
       9 | #define __stringify_1(x...)     #x
         |                                  ^
   include/linux/kvm_types.h:13:43: note: in expansion of macro '__stringify'
      13 |         EXPORT_SYMBOL_FOR_MODULES(symbol, __stringify(KVM_SUB_MODULES))
         |                                           ^~~~~~~~~~~
   arch/x86/kvm/kvm_onhyperv.c:124:1: note: in expansion of macro 'EXPORT_SYMBOL_FOR_KVM_INTERNAL'
     124 | EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_track_root_tdp);
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +104 arch/x86/kvm/kvm_onhyperv.c

     6	
   > 7	#include <linux/kvm_host.h>
     8	#include <asm/mshyperv.h>
     9	
    10	#include "hyperv.h"
    11	#include "kvm_onhyperv.h"
    12	
    13	struct kvm_hv_tlb_range {
    14		u64 start_gfn;
    15		u64 pages;
    16	};
    17	
    18	static int kvm_fill_hv_flush_list_func(struct hv_guest_mapping_flush_list *flush,
    19			void *data)
    20	{
    21		struct kvm_hv_tlb_range *range = data;
    22	
    23		return hyperv_fill_flush_guest_mapping_list(flush, range->start_gfn,
    24				range->pages);
    25	}
    26	
    27	static inline int hv_remote_flush_root_tdp(hpa_t root_tdp,
    28						   struct kvm_hv_tlb_range *range)
    29	{
    30		if (range)
    31			return hyperv_flush_guest_mapping_range(root_tdp,
    32					kvm_fill_hv_flush_list_func, (void *)range);
    33		else
    34			return hyperv_flush_guest_mapping(root_tdp);
    35	}
    36	
    37	static int __hv_flush_remote_tlbs_range(struct kvm *kvm,
    38						struct kvm_hv_tlb_range *range)
    39	{
    40		struct kvm_arch *kvm_arch = &kvm->arch;
    41		struct kvm_vcpu *vcpu;
    42		int ret = 0, nr_unique_valid_roots;
    43		unsigned long i;
    44		hpa_t root;
    45	
    46		spin_lock(&kvm_arch->hv_root_tdp_lock);
    47	
    48		if (!VALID_PAGE(kvm_arch->hv_root_tdp)) {
    49			nr_unique_valid_roots = 0;
    50	
    51			/*
    52			 * Flush all valid roots, and see if all vCPUs have converged
    53			 * on a common root, in which case future flushes can skip the
    54			 * loop and flush the common root.
    55			 */
    56			kvm_for_each_vcpu(i, vcpu, kvm) {
    57				root = vcpu->arch.hv_root_tdp;
    58				if (!VALID_PAGE(root) || root == kvm_arch->hv_root_tdp)
    59					continue;
    60	
    61				/*
    62				 * Set the tracked root to the first valid root.  Keep
    63				 * this root for the entirety of the loop even if more
    64				 * roots are encountered as a low effort optimization
    65				 * to avoid flushing the same (first) root again.
    66				 */
    67				if (++nr_unique_valid_roots == 1)
    68					kvm_arch->hv_root_tdp = root;
    69	
    70				if (!ret)
    71					ret = hv_remote_flush_root_tdp(root, range);
    72	
    73				/*
    74				 * Stop processing roots if a failure occurred and
    75				 * multiple valid roots have already been detected.
    76				 */
    77				if (ret && nr_unique_valid_roots > 1)
    78					break;
    79			}
    80	
    81			/*
    82			 * The optimized flush of a single root can't be used if there
    83			 * are multiple valid roots (obviously).
    84			 */
    85			if (nr_unique_valid_roots > 1)
    86				kvm_arch->hv_root_tdp = INVALID_PAGE;
    87		} else {
    88			ret = hv_remote_flush_root_tdp(kvm_arch->hv_root_tdp, range);
    89		}
    90	
    91		spin_unlock(&kvm_arch->hv_root_tdp_lock);
    92		return ret;
    93	}
    94	
    95	int hv_flush_remote_tlbs_range(struct kvm *kvm, gfn_t start_gfn, gfn_t nr_pages)
    96	{
    97		struct kvm_hv_tlb_range range = {
    98			.start_gfn = start_gfn,
    99			.pages = nr_pages,
   100		};
   101	
   102		return __hv_flush_remote_tlbs_range(kvm, &range);
   103	}
 > 104	EXPORT_SYMBOL_FOR_KVM_INTERNAL(hv_flush_remote_tlbs_range);
   105	

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-24 14:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-24 12:15 [kvm-x86:exports 60/60] arch/x86/kvm/kvm_onhyperv.c:104:58: error: expected ')' before string constant kernel test robot
2025-09-24 14:15 ` Sean Christopherson

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.