History

KVM: x86: allow compiling as non-module with W=1

Compile error with CONFIG_KVM_INTEL=y and W=1: CC arch/x86/kvm/vmx/vmx.o arch/x86/kvm/vmx/vmx.c:68:32: error: 'vmx_cpu_id' defined but not used [-Werror=unused-const-variable=] 68 | static const struct x86_cpu_id vmx_cpu_id[] = { | ^~~~~~~~~~ cc1: all warnings being treated as errors When building with =y, the MODULE_DEVICE_TABLE macro doesn't generate a reference to the structure (or any code at all). This makes W=1 compiles unhappy. Wrap both in a #ifdef to avoid the issue.

Valdis Klētnieks committed 6 years ago

Commit 575b2551 parent 8a9442f2 files · +4 −0Browse files

Unified · Split

2 files
  1. arch/x86/kvm/svm.c +2 −0
  2. arch/x86/kvm/vmx/vmx.c +2 −0
arch/x86/kvm/svm.c+2−0
@@ -57,11 +57,13 @@ · 56 unmodified lines
57MODULE_AUTHOR("Qumranet");57MODULE_AUTHOR("Qumranet");
58MODULE_LICENSE("GPL");58MODULE_LICENSE("GPL");
59 59
60#ifdef MODULE
60static const struct x86_cpu_id svm_cpu_id[] = {61static const struct x86_cpu_id svm_cpu_id[] = {
61 X86_FEATURE_MATCH(X86_FEATURE_SVM),62 X86_FEATURE_MATCH(X86_FEATURE_SVM),
62 {}63 {}
63};64};
64MODULE_DEVICE_TABLE(x86cpu, svm_cpu_id);65MODULE_DEVICE_TABLE(x86cpu, svm_cpu_id);
66#endif
65 67
66#define IOPM_ALLOC_ORDER 268#define IOPM_ALLOC_ORDER 2
67#define MSRPM_ALLOC_ORDER 169#define MSRPM_ALLOC_ORDER 1
arch/x86/kvm/vmx/vmx.c+2−0
@@ -64,11 +64,13 @@ · 63 unmodified lines
64MODULE_AUTHOR("Qumranet");64MODULE_AUTHOR("Qumranet");
65MODULE_LICENSE("GPL");65MODULE_LICENSE("GPL");
66 66
67#ifdef MODULE
67static const struct x86_cpu_id vmx_cpu_id[] = {68static const struct x86_cpu_id vmx_cpu_id[] = {
68 X86_FEATURE_MATCH(X86_FEATURE_VMX),69 X86_FEATURE_MATCH(X86_FEATURE_VMX),
69 {}70 {}
70};71};
71MODULE_DEVICE_TABLE(x86cpu, vmx_cpu_id);72MODULE_DEVICE_TABLE(x86cpu, vmx_cpu_id);
73#endif
72 74
73bool __read_mostly enable_vpid = 1;75bool __read_mostly enable_vpid = 1;
74module_param_named(vpid, enable_vpid, bool, 0444);76module_param_named(vpid, enable_vpid, bool, 0444);