All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Sean Christopherson <seanjc@google.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [kvm-x86:exports 60/60] arch/x86/kvm/kvm_onhyperv.c:104:58: error: expected ')' before string constant
Date: Wed, 24 Sep 2025 20:15:26 +0800	[thread overview]
Message-ID: <202509242018.H6effaVS-lkp@intel.com> (raw)

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

             reply	other threads:[~2025-09-24 12:15 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-24 12:15 kernel test robot [this message]
2025-09-24 14:15 ` [kvm-x86:exports 60/60] arch/x86/kvm/kvm_onhyperv.c:104:58: error: expected ')' before string constant Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202509242018.H6effaVS-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=seanjc@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.