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
next 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.