Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1739475 > unrolled thread

unneeded internal declaration

Started byNick Desaulniers <nick.desaulniers@gmail.com>
First post2017-09-26 05:10 +0200
Last post2017-09-26 06:30 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  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

#1739475 — unneeded internal declaration

FromNick Desaulniers <nick.desaulniers@gmail.com>
Date2017-09-26 05:10 +0200
Subjectunneeded 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]


#1739488

FromJosh Triplett <josh@joshtriplett.org>
Date2017-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]


#1739503

FromNick Desaulniers <nick.desaulniers@gmail.com>
Date2017-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]


#1739504 — [PATCH] KVM: VMX: check match table

FromNick Desaulniers <nick.desaulniers@gmail.com>
Date2017-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