]> git.dujemihanovic.xyz Git - linux.git/commitdiff
x86/xen: simplify sysenter and syscall setup
authorJuergen Gross <jgross@suse.com>
Thu, 20 Oct 2022 11:25:12 +0000 (13:25 +0200)
committerJuergen Gross <jgross@suse.com>
Thu, 3 Nov 2022 09:39:55 +0000 (10:39 +0100)
xen_enable_sysenter() and xen_enable_syscall() can be simplified a lot.

While at it, switch to use cpu_feature_enabled() instead of
boot_cpu_has().

Signed-off-by: Juergen Gross <jgross@suse.com>
arch/x86/xen/setup.c

index cfa99e8f054be5dba1e339e268c20115acc79d9b..4f4309500559a30c885e4cf18a6454d91886e992 100644 (file)
@@ -910,17 +910,9 @@ static int register_callback(unsigned type, const void *func)
 
 void xen_enable_sysenter(void)
 {
-       int ret;
-       unsigned sysenter_feature;
-
-       sysenter_feature = X86_FEATURE_SYSENTER32;
-
-       if (!boot_cpu_has(sysenter_feature))
-               return;
-
-       ret = register_callback(CALLBACKTYPE_sysenter, xen_entry_SYSENTER_compat);
-       if(ret != 0)
-               setup_clear_cpu_cap(sysenter_feature);
+       if (cpu_feature_enabled(X86_FEATURE_SYSENTER32) &&
+           register_callback(CALLBACKTYPE_sysenter, xen_entry_SYSENTER_compat))
+               setup_clear_cpu_cap(X86_FEATURE_SYSENTER32);
 }
 
 void xen_enable_syscall(void)
@@ -934,12 +926,9 @@ void xen_enable_syscall(void)
                   mechanism for syscalls. */
        }
 
-       if (boot_cpu_has(X86_FEATURE_SYSCALL32)) {
-               ret = register_callback(CALLBACKTYPE_syscall32,
-                                       xen_entry_SYSCALL_compat);
-               if (ret != 0)
-                       setup_clear_cpu_cap(X86_FEATURE_SYSCALL32);
-       }
+       if (cpu_feature_enabled(X86_FEATURE_SYSCALL32) &&
+           register_callback(CALLBACKTYPE_syscall32, xen_entry_SYSCALL_compat))
+               setup_clear_cpu_cap(X86_FEATURE_SYSCALL32);
 }
 
 static void __init xen_pvmmu_arch_setup(void)