Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1739475 > unrolled thread
| Started by | Nick Desaulniers <nick.desaulniers@gmail.com> |
|---|---|
| First post | 2017-09-26 05:10 +0200 |
| Last post | 2017-09-26 06:30 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
unneeded internal declaration Nick Desaulniers <nick.desaulniers@gmail.com> - 2017-09-26 05:10 +0200
Re: unneeded internal declaration Josh Triplett <josh@joshtriplett.org> - 2017-09-26 05:40 +0200
Re: unneeded internal declaration Nick Desaulniers <nick.desaulniers@gmail.com> - 2017-09-26 06:20 +0200
[PATCH] KVM: VMX: check match table Nick Desaulniers <nick.desaulniers@gmail.com> - 2017-09-26 06:30 +0200
| From | Nick Desaulniers <nick.desaulniers@gmail.com> |
|---|---|
| Date | 2017-09-26 05:10 +0200 |
| Subject | unneeded internal declaration |
| Message-ID | <utOpY-7kB-19@gated-at.bofh.it> |
today I noticed I was getting the warning: arch/x86/kvm/vmx.c:64:32: warning: variable 'vmx_cpu_id' is not needed and will not be emitted [-Wunneeded-internal-declaration] seems like this was added in commit: e9bda3b3d0ce7 "KVM: VMX: Auto-load on CPUs with VMX" seems like other call sites of the MODULE_DEVICE_TABLE typically get added to an id_table of various driver structs. Should that be the case here, or would a `__unused` modifier be a way forward (if so, please confirm, would be a good first bug for a friend)?
[toc] | [next] | [standalone]
| From | Josh Triplett <josh@joshtriplett.org> |
|---|---|
| Date | 2017-09-26 05:40 +0200 |
| Message-ID | <utOSZ-7vC-1@gated-at.bofh.it> |
| In reply to | #1739475 |
On Mon, Sep 25, 2017 at 08:07:41PM -0700, Nick Desaulniers wrote: > today I noticed I was getting the warning: > > arch/x86/kvm/vmx.c:64:32: warning: variable 'vmx_cpu_id' is not needed > and will not be emitted [-Wunneeded-internal-declaration] > > seems like this was added in commit: e9bda3b3d0ce7 "KVM: VMX: > Auto-load on CPUs with VMX" > > seems like other call sites of the MODULE_DEVICE_TABLE typically get > added to an id_table of various driver structs. Should that be the > case here, or would a `__unused` modifier be a way forward (if so, > please confirm, would be a good first bug for a friend)? Many of those users seem to have an x86_match_cpu call in their init function. vmx has its own checks; perhaps it'd make sense to use that instead, which would also eliminate the warning?
[toc] | [prev] | [next] | [standalone]
| From | Nick Desaulniers <nick.desaulniers@gmail.com> |
|---|---|
| Date | 2017-09-26 06:20 +0200 |
| Message-ID | <utPvI-81j-15@gated-at.bofh.it> |
| In reply to | #1739488 |
Good find, will send a patch with your suggestion. The documentation for x86_match_cpu() says: 25 * Arrays used to match for this should also be declared using 26 * MODULE_DEVICE_TABLE(x86cpu, ...) Will save another patch for a friend, then. On Mon, Sep 25, 2017 at 8:35 PM, Josh Triplett <josh@joshtriplett.org> wrote: > On Mon, Sep 25, 2017 at 08:07:41PM -0700, Nick Desaulniers wrote: >> today I noticed I was getting the warning: >> >> arch/x86/kvm/vmx.c:64:32: warning: variable 'vmx_cpu_id' is not needed >> and will not be emitted [-Wunneeded-internal-declaration] >> >> seems like this was added in commit: e9bda3b3d0ce7 "KVM: VMX: >> Auto-load on CPUs with VMX" >> >> seems like other call sites of the MODULE_DEVICE_TABLE typically get >> added to an id_table of various driver structs. Should that be the >> case here, or would a `__unused` modifier be a way forward (if so, >> please confirm, would be a good first bug for a friend)? > > Many of those users seem to have an x86_match_cpu call in their init > function. vmx has its own checks; perhaps it'd make sense to use that > instead, which would also eliminate the warning?
[toc] | [prev] | [next] | [standalone]
| From | Nick Desaulniers <nick.desaulniers@gmail.com> |
|---|---|
| Date | 2017-09-26 06:30 +0200 |
| Subject | [PATCH] KVM: VMX: check match table |
| Message-ID | <utPFn-87N-3@gated-at.bofh.it> |
| In reply to | #1739503 |
Fixes the warning:
arch/x86/kvm/vmx.c:64:32: warning: variable 'vmx_cpu_id' is not needed
and will not be emitted [-Wunneeded-internal-declaration]``
Other callers of MODULE_DEVICE_TABLE() seem to check their second
argument during driver init with the x86_match_cpu() function, if their
first argument to MODULE_DEVICE_TABLE() is x86cpu. The documentation
for x86_match_cpu() seems to agree.
Suggested-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
---
arch/x86/kernel/cpu/match.c | 2 +-
arch/x86/kvm/vmx.c | 7 ++++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/cpu/match.c b/arch/x86/kernel/cpu/match.c
index e42117d5f4d7..fb1aeafa5cc7 100644
--- a/arch/x86/kernel/cpu/match.c
+++ b/arch/x86/kernel/cpu/match.c
@@ -5,7 +5,7 @@
#include <linux/slab.h>
/**
- * x86_match_cpu - match current CPU again an array of x86_cpu_ids
+ * x86_match_cpu - match current CPU against an array of x86_cpu_ids
* @match: Pointer to array of x86_cpu_ids. Last entry terminated with
* {}.
*
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 6970249c09fc..e1a00b130935 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -12074,7 +12074,12 @@ static struct kvm_x86_ops vmx_x86_ops __ro_after_init = {
static int __init vmx_init(void)
{
- int r = kvm_init(&vmx_x86_ops, sizeof(struct vcpu_vmx),
+ int r;
+
+ if (!x86_match_cpu(vmx_cpu_id))
+ return -ENODEV;
+
+ r = kvm_init(&vmx_x86_ops, sizeof(struct vcpu_vmx),
__alignof__(struct vcpu_vmx), THIS_MODULE);
if (r)
return r;
--
2.11.0
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web