arch/x86/kernel/cpuid_fault.c:275:52: error: 'proc_vz_dir' undeclared
  275 |         proc = proc_create("cpuid_override", 0644, proc_vz_dir,
      |                                                    ^~~~~~~~~~~

We have no proc_vz_dir without CONFIG_VE. For minimal logic change
cover all the code in cpuid_fault.c except do_cpuid_fault
with #ifdef CONFIG_VE.

When CONFIG_VE is disabled, the behavior will be as if
cpuid_override list is empty.

https://virtuozzo.atlassian.net/browse/VSTOR-130116

Feature: !CONFIG_VE build
Signed-off-by: Vladimir Riabchun <[email protected]>
---
 arch/x86/kernel/cpuid_fault.c | 63 ++++++++++++++++++++++-------------
 1 file changed, 39 insertions(+), 24 deletions(-)

diff --git a/arch/x86/kernel/cpuid_fault.c b/arch/x86/kernel/cpuid_fault.c
index 117c971f531a..b8c65363625f 100644
--- a/arch/x86/kernel/cpuid_fault.c
+++ b/arch/x86/kernel/cpuid_fault.c
@@ -20,6 +20,44 @@
 #include <asm/uaccess.h>
 #include <asm/traps.h>
 
+#ifndef CONFIG_VE
+static bool cpuid_override_match(unsigned int op, unsigned int count,
+                                unsigned int *eax, unsigned int *ebx,
+                                unsigned int *ecx, unsigned int *edx)
+{
+       return false;
+}
+#else
+static bool cpuid_override_match(unsigned int op, unsigned int count,
+                                unsigned int *eax, unsigned int *ebx,
+                                unsigned int *ecx, unsigned int *edx);
+#endif
+
+void __do_cpuid_fault(unsigned int op, unsigned int count,
+                     unsigned int *eax, unsigned int *ebx,
+                     unsigned int *ecx, unsigned int *edx)
+{
+       /* check if op is overridden */
+       if (cpuid_override_match(op, count, eax, ebx, ecx, edx))
+               return;
+
+       /* fallback to real cpuid */
+       cpuid_count(op, count, eax, ebx, ecx, edx);
+}
+
+void do_cpuid_fault(struct pt_regs *regs)
+{
+       unsigned int eax, ebx, ecx, edx;
+
+       __do_cpuid_fault(regs->ax, regs->cx, &eax, &ebx, &ecx, &edx);
+
+       regs->ax = eax;
+       regs->bx = ebx;
+       regs->cx = ecx;
+       regs->dx = edx;
+}
+
+#ifdef CONFIG_VE
 struct cpuid_override_table __rcu *cpuid_override __read_mostly;
 static DEFINE_SPINLOCK(cpuid_override_lock);
 
@@ -99,30 +137,6 @@ static bool cpuid_override_match(unsigned int op, unsigned 
int count,
        return ret;
 }
 
-void __do_cpuid_fault(unsigned int op, unsigned int count,
-                     unsigned int *eax, unsigned int *ebx,
-                     unsigned int *ecx, unsigned int *edx)
-{
-       /* check if op is overridden */
-       if (cpuid_override_match(op, count, eax, ebx, ecx, edx))
-               return;
-
-       /* fallback to real cpuid */
-       cpuid_count(op, count, eax, ebx, ecx, edx);
-}
-
-void do_cpuid_fault(struct pt_regs *regs)
-{
-       unsigned int eax, ebx, ecx, edx;
-
-       __do_cpuid_fault(regs->ax, regs->cx, &eax, &ebx, &ecx, &edx);
-
-       regs->ax = eax;
-       regs->bx = ebx;
-       regs->cx = ecx;
-       regs->dx = edx;
-}
-
 /*
  * CPUID override entry format:
  *
@@ -281,3 +295,4 @@ static int __init cpuid_fault_init(void)
        return 0;
 }
 module_init(cpuid_fault_init);
+#endif /* CONFIG_VE */
-- 
2.43.0

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to