KVM minor fixups
Subsystems (4)
cover KVM minor fixups
Hi Marcelo,
These are a few fixups I found when running sparse and building Marc's 64 bit ARM tree. Please consider for 3.10.
-Geoff
The following changes since commit 07961ac7c0ee8b546658717034fe692fd12eefa9:
Linux 3.9-rc5 (2013-03-31 15:12:43 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/geoff/kvm.git for-kvm
for you to fetch changes up to 5d9e775fd2d7c9ab03d70175610a5d8cedcc3799:
kvm/arm: Remove unused kvm_arch_set_memory_region (2013-04-04 16:08:28 -0700)
----------------------------------------------------------------
Geoff Levand (7):
kvm: Make local routines static
kvm: Move vm_list, kvm_lock dec's out of x86
kvm: Move kvm_spurious_fault dec out of x86
kvm: Move kvm_rebooting dec out of x86 kvm/arm: Fix missing include build error kvm/arm: Make force_vm_exit static kvm/arm: Remove unused kvm_arch_set_memory_region
arch/arm/include/asm/kvm_host.h | 1 - arch/arm/kvm/arm.c | 11 ++--------- arch/x86/include/asm/kvm_host.h | 11 ----------- include/linux/kvm_host.h | 11 +++++++++++ virt/kvm/kvm_main.c | 8 ++++---- 5 files changed, 17 insertions(+), 25 deletions(-)
Signature · 1 line
1.7.9.5
PATCH 1/7 kvm: Make local routines static
The routines get_user_page_nowait(), kvm_io_bus_sort_cmp(), kvm_io_bus_insert_dev() and kvm_io_bus_get_first_dev() are only referenced within kvm_main.c, so give them static linkage.
Fixes sparse warnings like these:
virt/kvm/kvm_main.c: warning: symbol 'get_user_page_nowait' was not declared. Should it be static?
--- virt/kvm/kvm_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
virt/kvm/kvm_main.c +4 -4
@@ -1099,7 +1099,7 @@ static int kvm_read_hva_atomic(void *data, void __user *hva, int len)return __copy_from_user_inatomic (data, hva, len); } -int get_user_page_nowait (struct task_struct *tsk,struct mm_struct *mm, +static int get_user_page_nowait (struct task_struct *tsk,struct mm_struct *mm,unsigned long start,int write,struct page **page) {int flags =FOLL_TOUCH |FOLL_NOWAIT |FOLL_HWPOISON |FOLL_GET ;
@@ -2631,7 +2631,7 @@ static void kvm_io_bus_destroy(struct kvm_io_bus *bus)kfree (bus); } -int kvm_io_bus_sort_cmp (const void *p1,const void *p2) +static int kvm_io_bus_sort_cmp (const void *p1,const void *p2) {const struct kvm_io_range *r1 = p1;const struct kvm_io_range *r2 = p2;
@@ -2643,7 +2643,7 @@ int kvm_io_bus_sort_cmp(const void *p1, const void *p2)return 0 ; } -int kvm_io_bus_insert_dev (struct kvm_io_bus *bus,struct kvm_io_device *dev, +static int kvm_io_bus_insert_dev (struct kvm_io_bus *bus,struct kvm_io_device *dev,gpa_t addr,int len) { bus->range[bus->dev_count++] = (struct kvm_io_range ) {
@@ -2658,7 +2658,7 @@ int kvm_io_bus_insert_dev(struct kvm_io_bus *bus, struct kvm_io_device *dev,return 0 ; } -int kvm_io_bus_get_first_dev (struct kvm_io_bus *bus, +static int kvm_io_bus_get_first_dev (struct kvm_io_bus *bus,gpa_t addr,int len) {struct kvm_io_range *range, key;
Signature · 1 line
1.7.9.5
PATCH 2/7 kvm: Move vm_list, kvm_lock dec's out of x86
In reply to Geoff LevandThe variables vm_list and kvm_lock are common to all architectures, so move the declarations from arch/x86/include/asm/kvm_host.h to include/linux/kvm_host.h.
Fixes sparse warnings like these when building for arm64:
virt/kvm/kvm_main.c: warning: symbol 'kvm_lock' was not declared. Should it be static? virt/kvm/kvm_main.c: warning: symbol 'vm_list' was not declared. Should it be static?
--- arch/x86/include/asm/kvm_host.h | 3 --- include/linux/kvm_host.h | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-)
arch/x86/include/asm/kvm_host.h +0 -3
@@ -94,9 +94,6 @@#define ASYNC_PF_PER_VCPU 64 -extern raw_spinlock_t kvm_lock; -extern struct list_head vm_list; -struct kvm_vcpu ;struct kvm ;struct kvm_async_pf ;
include/linux/kvm_host.h +3 -0
@@ -133,6 +133,9 @@ struct kvm;struct kvm_vcpu ;extern struct kmem_cache *kvm_vcpu_cache; +extern raw_spinlock_t kvm_lock; +extern struct list_head vm_list; +struct kvm_io_range {gpa_t addr;int len;
Signature · 1 line
1.7.9.5
PATCH 3/7 kvm: Move kvm_spurious_fault dec out of x86
In reply to Geoff LevandThe routine kvm_spurious_fault() is a common kvm routine, so move its declaration from arch/x86/include/asm/kvm_host.h to arch/arm/include/asm/kvm_host.h.
Fixes sparse warning when building on arm64:
virt/kvm/kvm_main.c:warning: symbol 'kvm_spurious_fault' was not declared. Should it be static?
--- arch/x86/include/asm/kvm_host.h | 6 ------ include/linux/kvm_host.h | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-)
arch/x86/include/asm/kvm_host.h +0 -6
@@ -964,12 +964,6 @@ enum {#define HF_IRET_MASK (1 << 4)#define HF_GUEST_MASK (1 << 5)/* VCPU is in guest-mode */ -/* -* Hardware virtualization extension instructions may fault if a -* reboot turns off virtualization while processes are running. -* Trap the fault and ignore the instruction if that happens. -*/ -asmlinkage void kvm_spurious_fault(void);extern bool kvm_rebooting;#define ____kvm_handle_fault_on_reboot (insn, cleanup_insn) \
include/linux/kvm_host.h +7 -0
@@ -1031,6 +1031,13 @@ static inline bool kvm_check_request(int req, struct kvm_vcpu *vcpu) } } +/* +* Hardware virtualization extension instructions may fault if a +* reboot turns off virtualization while processes are running. +* Trap the fault and ignore the instruction if that happens. +*/ +asmlinkage void kvm_spurious_fault(void); +#ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT static inline void kvm_vcpu_set_in_spin_loop (struct kvm_vcpu *vcpu,bool val)
Signature · 1 line
1.7.9.5
Paolo Bonzini
maintainerRe: [PATCH 3/7] kvm: Move kvm_spurious_fault dec out of x86
Il 05/04/2013 01:33, Geoff Levand ha scritto:
Quoted 3 lines
The routine
kvm_spurious_fault()is a common kvm routine, so move its declaration fromarch/x86/include/asm/kvm_host.htoarch/arm/include/asm/kvm_host.h.
Typo in the commit message.
Paolo
Quoted 9 lines
Fixes sparse warning when building on arm64:
virt/kvm/kvm_main.c:warning: symbol '
kvm_spurious_fault' was not declared. Should it be static?Signed-off-by Geoff Levand <[email protected]>--- arch/x86/include/asm/kvm_host.h | 6 ------ include/linux/kvm_host.h | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-)
Paolo Bonzini
maintainerRe: [PATCH 3/7] kvm: Move kvm_spurious_fault dec out of x86
In reply to Geoff LevandIl 05/04/2013 01:33, Geoff Levand ha scritto:
Quoted 7 lines
The routine
kvm_spurious_fault()is a common kvm routine, so move its declaration fromarch/x86/include/asm/kvm_host.htoarch/arm/include/asm/kvm_host.h.Fixes sparse warning when building on arm64:
virt/kvm/kvm_main.c:warning: symbol '
kvm_spurious_fault' was not declared. Should it be static?
Please move it to arch/x86/kvm/x86.c instead.
Thanks!
Paolo
Quoted 42 lines
Signed-off-by Geoff Levand <[email protected]>--- arch/x86/include/asm/kvm_host.h | 6 ------ include/linux/kvm_host.h | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-)arch/x86/include/asm/kvm_host.h +0
-6@@ -964,12 +964,6 @@ enum {#define HF_IRET_MASK (1 << 4)#define HF_GUEST_MASK (1 << 5)/* VCPU is in guest-mode */ -/* -* Hardware virtualization extension instructions may fault if a -* reboot turns off virtualization while processes are running. -* Trap the fault and ignore the instruction if that happens. -*/ -asmlinkage void kvm_spurious_fault(void);extern bool kvm_rebooting;#define ____kvm_handle_fault_on_reboot (insn, cleanup_insn) \include/linux/kvm_host.h +7
-0@@ -1031,6 +1031,13 @@ static inline bool kvm_check_request(int req, struct kvm_vcpu *vcpu) } } +/* +* Hardware virtualization extension instructions may fault if a +* reboot turns off virtualization while processes are running. +* Trap the fault and ignore the instruction if that happens. +*/ +asmlinkage void kvm_spurious_fault(void); +#ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT static inline void kvm_vcpu_set_in_spin_loop (struct kvm_vcpu *vcpu,bool val)
PATCH 4/7 kvm: Move kvm_rebooting dec out of x86
In reply to Geoff LevandThe variable kvm_rebooting is a common kvm variable, so move its declaration from arch/x86/include/asm/kvm_host.h to arch/arm/include/asm/kvm_host.h.
Fixes sparse warning when building on arm64:
virt/kvm/kvm_main.c:warning: symbol 'kvm_rebooting' was not declared. Should it be static?
--- arch/x86/include/asm/kvm_host.h | 2 -- include/linux/kvm_host.h | 1 + 2 files changed, 1 insertion(+), 2 deletions(-)
arch/x86/include/asm/kvm_host.h +0 -2
@@ -964,8 +964,6 @@ enum {#define HF_IRET_MASK (1 << 4)#define HF_GUEST_MASK (1 << 5)/* VCPU is in guest-mode */ -extern bool kvm_rebooting; -#define ____kvm_handle_fault_on_reboot (insn, cleanup_insn) \ "666: " insn "\n\t" \ "668: \n\t" \
include/linux/kvm_host.h +1 -0
@@ -1037,6 +1037,7 @@ static inline bool kvm_check_request(int req, struct kvm_vcpu *vcpu)* Trap the fault and ignore the instruction if that happens. */ asmlinkage void kvm_spurious_fault(void); +extern bool kvm_rebooting;#ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT
Signature · 1 line
1.7.9.5
PATCH 5/7 kvm/arm: Fix missing include build error
In reply to Geoff LevandInclude linux/cpu.h in kvm/arm.c. Fixes build errors like these with ARCH=arm64:
arch/arm/kvm/arm.c: error: ‘CPU_STARTING_FROZEN’ undeclared
--- arch/arm/kvm/arm.c | 1 + 1 file changed, 1 insertion(+)
arch/arm/kvm/arm.c +1 -0
@@ -24,6 +24,7 @@#include <linux/fs.h> #include <linux/mman.h> #include <linux/sched.h> +#include <linux/cpu.h> #include <linux/kvm.h> #include <trace/events/kvm.h>
Signature · 1 line
1.7.9.5
Re: [PATCH 5/7] kvm/arm: Fix missing include build error
Quoted 16 lines · Geoff Levand
Include
linux/cpu.hinkvm/arm.c. Fixes build errors like these with ARCH=arm64:
arch/arm/kvm/arm.c: error: ‘CPU_STARTING_FROZEN’ undeclaredSigned-off-by Geoff Levand <[email protected]>--- arch/arm/kvm/arm.c | 1 + 1 file changed, 1 insertion(+)arch/arm/kvm/arm.c +0
-0
arch/arm/kvm/arm.c
Quoted 8 lines
arch/arm/kvm/arm.c +1
-1@@ -24,6 +24,7 @@#include <linux/fs.h> #include <linux/mman.h> #include <linux/sched.h> +#include <linux/cpu.h> #include <linux/kvm.h> #include <trace/events/kvm.h> --
I'm confused, I don't see this symbol in arm.c - against which tree do these patches apply exactly? If this is something introduced by arm64, then it's premature, and should be added to that series.
-Christoffer
Re: [PATCH 5/7] kvm/arm: Fix missing include build error
Hi Christoffer,
Quoted 23 lines · Christoffer Dall
Quoted 22 lines · Geoff Levand
Include
linux/cpu.hinkvm/arm.c. Fixes build errors like these with ARCH=arm64:
arch/arm/kvm/arm.c: error: ‘CPU_STARTING_FROZEN’ undeclaredSigned-off-by Geoff Levand <[email protected]>--- arch/arm/kvm/arm.c | 1 + 1 file changed, 1 insertion(+)arch/arm/kvm/arm.c +1
-0@@ -24,6 +24,7 @@#include <linux/fs.h> #include <linux/mman.h> #include <linux/sched.h> +#include <linux/cpu.h> #include <linux/kvm.h> #include <trace/events/kvm.h>
Quoted 6 lines
Quoted 2 lines
--
I'm confused, I don't see this symbol in
arm.c- against which tree do these patches apply exactly? If this is something introduced by arm64, then it's premature, and should be added to that series.
Sorry, this one is from Marc's kvm-for-next branch. I'll send it to him to include, unless you just want to take it in preparation.
-Geoff
Re: [PATCH 5/7] kvm/arm: Fix missing include build error
Quoted 33 lines · Geoff Levand
Hi Christoffer,
Quoted 23 lines · Christoffer Dall
Quoted 22 lines · Geoff Levand
Include
linux/cpu.hinkvm/arm.c. Fixes build errors like these with ARCH=arm64:
arch/arm/kvm/arm.c: error: ‘CPU_STARTING_FROZEN’ undeclaredSigned-off-by Geoff Levand <[email protected]>--- arch/arm/kvm/arm.c | 1 + 1 file changed, 1 insertion(+)arch/arm/kvm/arm.c +1
-0@@ -24,6 +24,7 @@#include <linux/fs.h> #include <linux/mman.h> #include <linux/sched.h> +#include <linux/cpu.h> #include <linux/kvm.h> #include <trace/events/kvm.h> Quoted 6 lines
Quoted 2 lines
--
I'm confused, I don't see this symbol in
arm.c- against which tree do these patches apply exactly? If this is something introduced by arm64, then it's premature, and should be added to that series.
Quoted 3 lines
Sorry, this one is from Marc's kvm-for-next branch. I'll send it to him to include, unless you just want to take it in preparation.
Hmm, not sure what the status of his branch is exactly. Does it contain the arm64 stuff?
I don't really want to merge this before it's needed.
-Christoffer
Re: [PATCH 5/7] kvm/arm: Fix missing include build error
Hi,
Quoted 7 lines · Christoffer Dall
Quoted 3 lines · Geoff Levand
Sorry, this one is from Marc's kvm-for-next branch. I'll send it to him to include, unless you just want to take it in preparation.
Hmm, not sure what the status of his branch is exactly. Does it contain the arm64 stuff?
Yes, it is pretty much his most recent.
Quoted 1 line
I don't really want to merge this before it's needed.
OK, that's fine. I'll just add it to a few other 64 bit specific fixups I'll be sending to Marc.
-Geoff
PATCH 6/7 kvm/arm: Make force_vm_exit static
In reply to Geoff LevandThe routine force_vm_exit() is not referenced outside kvm/arm.c, so make it have static linkage.
--- arch/arm/include/asm/kvm_host.h | 1 - arch/arm/kvm/arm.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-)
arch/arm/include/asm/kvm_host.h +0 -1
@@ -149,7 +149,6 @@ struct kvm_one_reg;int kvm_arm_get_reg (struct kvm_vcpu *vcpu,const struct kvm_one_reg *reg);int kvm_arm_set_reg (struct kvm_vcpu *vcpu,const struct kvm_one_reg *reg);u64 kvm_call_hyp (void *hypfn, ...); -void force_vm_exit (const cpumask_t *mask);#define KVM_ARCH_WANT_MMU_NOTIFIER struct kvm ;
arch/arm/kvm/arm.c +1 -1
@@ -400,7 +400,7 @@ static void exit_vm_noop(void *info) { } -void force_vm_exit (const cpumask_t *mask) +static void force_vm_exit (const cpumask_t *mask) {smp_call_function_many (mask, exit_vm_noop,NULL , true); }
Signature · 1 line
1.7.9.5
Re: [PATCH 6/7] kvm/arm: Make force_vm_exit static
Quoted 35 lines · Geoff Levand
The routine
force_vm_exit()is not referenced outsidekvm/arm.c, so make it have static linkage.Signed-off-by Geoff Levand <[email protected]>--- arch/arm/include/asm/kvm_host.h | 1 - arch/arm/kvm/arm.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-)arch/arm/include/asm/kvm_host.h +0
-1@@ -149,7 +149,6 @@ struct kvm_one_reg;int kvm_arm_get_reg (struct kvm_vcpu *vcpu,const struct kvm_one_reg *reg);int kvm_arm_set_reg (struct kvm_vcpu *vcpu,const struct kvm_one_reg *reg);u64 kvm_call_hyp (void *hypfn, ...); -void force_vm_exit (const cpumask_t *mask);#define KVM_ARCH_WANT_MMU_NOTIFIER struct kvm ;arch/arm/kvm/arm.c +1
-2@@ -400,7 +400,7 @@ static void exit_vm_noop(void *info) { } -void force_vm_exit (const cpumask_t *mask) +static void force_vm_exit (const cpumask_t *mask) {smp_call_function_many (mask, exit_vm_noop,NULL , true); } --
Quoted 3 lines
1.7.9.5
I can take this one.
-Christoffer
PATCH 7/7 kvm/arm: Remove unused kvm_arch_set_memory_region
In reply to Geoff LevandRemove the unused and empty routine kvm_arch_set_memory_region().
--- arch/arm/kvm/arm.c | 8 -------- 1 file changed, 8 deletions(-)
arch/arm/kvm/arm.c +0 -8
@@ -221,14 +221,6 @@ long kvm_arch_dev_ioctl(struct file *filp,return -EINVAL ; } -int kvm_arch_set_memory_region (struct kvm *kvm, -struct kvm_userspace_memory_region *mem, -struct kvm_memory_slot old, -int user_alloc) -{ -return 0 ; -} - int kvm_arch_prepare_memory_region(struct kvm *kvm, struct kvm_memory_slot *memslot, struct kvm_memory_slot old,
Signature · 1 line
1.7.9.5
Re: [PATCH 7/7] kvm/arm: Remove unused kvm_arch_set_memory_region
Quoted 29 lines · Geoff Levand
Remove the unused and empty routine
kvm_arch_set_memory_region().Signed-off-by Geoff Levand <[email protected]>--- arch/arm/kvm/arm.c | 8 -------- 1 file changed, 8 deletions(-)arch/arm/kvm/arm.c +0
-9@@ -221,14 +221,6 @@ long kvm_arch_dev_ioctl(struct file *filp,return -EINVAL ; } -int kvm_arch_set_memory_region (struct kvm *kvm, -struct kvm_userspace_memory_region *mem, -struct kvm_memory_slot old, -int user_alloc) -{ -return 0 ; -} - int kvm_arch_prepare_memory_region(struct kvm *kvm, struct kvm_memory_slot *memslot, struct kvm_memory_slot old, --1.7.9.5
Quoted 4 lines
--
To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
and I can take this one too.
-Christoffer
Quoted 4 lines · Geoff Levand
Hi Marcelo,
These are a few fixups I found when running sparse and building Marc's 64 bit ARM tree. Please consider for 3.10.
"running sparse" - what does this mean?
-Christoffer
Hi Christoffer,
Quoted 7 lines · Christoffer Dall
Quoted 4 lines · Geoff Levand
Hi Marcelo,
These are a few fixups I found when running sparse and building Marc's 64 bit ARM tree. Please consider for 3.10.
"running sparse" - what does this mean?
make C=1. It runs the checker, by default, sparse.
http://en.wikipedia.org/wiki/Sparse
-Geoff
Quoted 6 lines · Geoff Levand
Hi Christoffer,
Quoted 3 lines · Christoffer Dall
Quoted 2 lines · Geoff Levand
Hi Marcelo,
Quoted 9 lines
Quoted 4 lines
Quoted 2 lines
These are a few fixups I found when running sparse and building Marc's 64 bit ARM tree. Please consider for 3.10.
"running sparse" - what does this mean?
make C=1. It runs the checker, by default, sparse.
got it, thanks.
Paolo Bonzini
maintainerIl 05/04/2013 01:33, Geoff Levand ha scritto:
Quoted 4 lines
Hi Marcelo,
These are a few fixups I found when running sparse and building Marc's 64 bit ARM tree. Please consider for 3.10.
Thanks, nice cleanups.
Please resubmit patches 1-4 with the small fixes I suggested and, since you're at it, please write "declaration" in full instead of just "dec".
Paolo
Quoted 31 lines
-Geoff
The following changes since commit
07961ac7c0ee8b546658717034fe692fd12eefa9:Linux 3.9-rc5 (2013-03-31 15:12:43 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/geoff/kvm.gitfor-kvmfor you to fetch changes up to
5d9e775fd2d7c9ab03d70175610a5d8cedcc3799:kvm/arm: Remove unused
kvm_arch_set_memory_region(2013-04-04 16:08:28 -0700)----------------------------------------------------------------
Geoff Levand (7):
kvm: Make local routines static
kvm: Movevm_list,kvm_lockdec's out of x86
kvm: Movekvm_spurious_faultdec out of x86
kvm: Movekvm_rebootingdec out of x86 kvm/arm: Fix missing include build error kvm/arm: Makeforce_vm_exitstatic kvm/arm: Remove unusedkvm_arch_set_memory_regionarch/arm/include/asm/kvm_host.h | 1 - arch/arm/kvm/arm.c | 11 ++--------- arch/x86/include/asm/kvm_host.h | 11 ----------- include/linux/kvm_host.h | 11 +++++++++++ virt/kvm/kvm_main.c | 8 ++++---- 5 files changed, 17 insertions(+), 25 deletions(-)