From: Avi Kivity <avi@redhat.com>
To: kvm-ia64@vger.kernel.org
Subject: [PATCH 5/7] KVM: s390: Centrally lock arch specific vcpu ioctls
Date: Thu, 13 May 2010 11:17:37 +0000 [thread overview]
Message-ID: <1273749459-622-6-git-send-email-avi@redhat.com> (raw)
Signed-off-by: Avi Kivity <avi@redhat.com>
---
arch/s390/kvm/kvm-s390.c | 40 +++++++++++++++++-----------------------
1 files changed, 17 insertions(+), 23 deletions(-)
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index e80f55e..28cd8fd 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -363,9 +363,7 @@ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
static int kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
{
- vcpu_load(vcpu);
kvm_s390_vcpu_initial_reset(vcpu);
- vcpu_put(vcpu);
return 0;
}
@@ -415,14 +413,12 @@ static int kvm_arch_vcpu_ioctl_set_initial_psw(struct kvm_vcpu *vcpu, psw_t psw)
{
int rc = 0;
- vcpu_load(vcpu);
if (atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_RUNNING)
rc = -EBUSY;
else {
vcpu->run->psw_mask = psw.mask;
vcpu->run->psw_addr = psw.addr;
}
- vcpu_put(vcpu);
return rc;
}
@@ -573,7 +569,7 @@ static int __guestcopy(struct kvm_vcpu *vcpu, u64 guestdest, const void *from,
* KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit
* KVM_S390_STORE_STATUS_PREFIXED: -> prefix
*/
-int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
+static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
{
const unsigned char archmode = 1;
int prefix;
@@ -635,45 +631,43 @@ int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
return 0;
}
-static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
-{
- int rc;
-
- vcpu_load(vcpu);
- rc = __kvm_s390_vcpu_store_status(vcpu, addr);
- vcpu_put(vcpu);
- return rc;
-}
-
long kvm_arch_vcpu_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
struct kvm_vcpu *vcpu = filp->private_data;
void __user *argp = (void __user *)arg;
+ long r;
- switch (ioctl) {
- case KVM_S390_INTERRUPT: {
+ if (ioctl = KVM_S390_INTERRUPT) {
struct kvm_s390_interrupt s390int;
if (copy_from_user(&s390int, argp, sizeof(s390int)))
return -EFAULT;
return kvm_s390_inject_vcpu(vcpu, &s390int);
}
+
+ vcpu_load(vcpu);
+ switch (ioctl) {
case KVM_S390_STORE_STATUS:
- return kvm_s390_vcpu_store_status(vcpu, arg);
+ r = kvm_s390_vcpu_store_status(vcpu, arg);
+ break;
case KVM_S390_SET_INITIAL_PSW: {
psw_t psw;
+ r = -EFAULT;
if (copy_from_user(&psw, argp, sizeof(psw)))
- return -EFAULT;
- return kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
+ break;
+ r = kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
+ break;
}
case KVM_S390_INITIAL_RESET:
- return kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+ r = kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+ break;
default:
- ;
+ r = -EINVAL;
}
- return -EINVAL;
+ vcpu_put(vcpu);
+ return r;
}
/* Section: memory related */
--
1.7.0.4
WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: Marcelo Tosatti
<mtosatti-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kvm-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org
Subject: [PATCH 5/7] KVM: s390: Centrally lock arch specific vcpu ioctls
Date: Thu, 13 May 2010 11:17:37 +0000 [thread overview]
Message-ID: <1273749459-622-6-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1273749459-622-1-git-send-email-avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Avi Kivity <avi@redhat.com>
---
arch/s390/kvm/kvm-s390.c | 40 +++++++++++++++++-----------------------
1 files changed, 17 insertions(+), 23 deletions(-)
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index e80f55e..28cd8fd 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -363,9 +363,7 @@ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
static int kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
{
- vcpu_load(vcpu);
kvm_s390_vcpu_initial_reset(vcpu);
- vcpu_put(vcpu);
return 0;
}
@@ -415,14 +413,12 @@ static int kvm_arch_vcpu_ioctl_set_initial_psw(struct kvm_vcpu *vcpu, psw_t psw)
{
int rc = 0;
- vcpu_load(vcpu);
if (atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_RUNNING)
rc = -EBUSY;
else {
vcpu->run->psw_mask = psw.mask;
vcpu->run->psw_addr = psw.addr;
}
- vcpu_put(vcpu);
return rc;
}
@@ -573,7 +569,7 @@ static int __guestcopy(struct kvm_vcpu *vcpu, u64 guestdest, const void *from,
* KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit
* KVM_S390_STORE_STATUS_PREFIXED: -> prefix
*/
-int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
+static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
{
const unsigned char archmode = 1;
int prefix;
@@ -635,45 +631,43 @@ int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
return 0;
}
-static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
-{
- int rc;
-
- vcpu_load(vcpu);
- rc = __kvm_s390_vcpu_store_status(vcpu, addr);
- vcpu_put(vcpu);
- return rc;
-}
-
long kvm_arch_vcpu_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
struct kvm_vcpu *vcpu = filp->private_data;
void __user *argp = (void __user *)arg;
+ long r;
- switch (ioctl) {
- case KVM_S390_INTERRUPT: {
+ if (ioctl = KVM_S390_INTERRUPT) {
struct kvm_s390_interrupt s390int;
if (copy_from_user(&s390int, argp, sizeof(s390int)))
return -EFAULT;
return kvm_s390_inject_vcpu(vcpu, &s390int);
}
+
+ vcpu_load(vcpu);
+ switch (ioctl) {
case KVM_S390_STORE_STATUS:
- return kvm_s390_vcpu_store_status(vcpu, arg);
+ r = kvm_s390_vcpu_store_status(vcpu, arg);
+ break;
case KVM_S390_SET_INITIAL_PSW: {
psw_t psw;
+ r = -EFAULT;
if (copy_from_user(&psw, argp, sizeof(psw)))
- return -EFAULT;
- return kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
+ break;
+ r = kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
+ break;
}
case KVM_S390_INITIAL_RESET:
- return kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+ r = kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+ break;
default:
- ;
+ r = -EINVAL;
}
- return -EINVAL;
+ vcpu_put(vcpu);
+ return r;
}
/* Section: memory related */
--
1.7.0.4
WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Marcelo Tosatti
<mtosatti-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kvm-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kvm-ppc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
carsteno-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org
Subject: [PATCH 5/7] KVM: s390: Centrally lock arch specific vcpu ioctls
Date: Thu, 13 May 2010 14:17:37 +0300 [thread overview]
Message-ID: <1273749459-622-6-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1273749459-622-1-git-send-email-avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Avi Kivity <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
arch/s390/kvm/kvm-s390.c | 40 +++++++++++++++++-----------------------
1 files changed, 17 insertions(+), 23 deletions(-)
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index e80f55e..28cd8fd 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -363,9 +363,7 @@ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu)
static int kvm_arch_vcpu_ioctl_initial_reset(struct kvm_vcpu *vcpu)
{
- vcpu_load(vcpu);
kvm_s390_vcpu_initial_reset(vcpu);
- vcpu_put(vcpu);
return 0;
}
@@ -415,14 +413,12 @@ static int kvm_arch_vcpu_ioctl_set_initial_psw(struct kvm_vcpu *vcpu, psw_t psw)
{
int rc = 0;
- vcpu_load(vcpu);
if (atomic_read(&vcpu->arch.sie_block->cpuflags) & CPUSTAT_RUNNING)
rc = -EBUSY;
else {
vcpu->run->psw_mask = psw.mask;
vcpu->run->psw_addr = psw.addr;
}
- vcpu_put(vcpu);
return rc;
}
@@ -573,7 +569,7 @@ static int __guestcopy(struct kvm_vcpu *vcpu, u64 guestdest, const void *from,
* KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit
* KVM_S390_STORE_STATUS_PREFIXED: -> prefix
*/
-int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
+static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
{
const unsigned char archmode = 1;
int prefix;
@@ -635,45 +631,43 @@ int __kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
return 0;
}
-static int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
-{
- int rc;
-
- vcpu_load(vcpu);
- rc = __kvm_s390_vcpu_store_status(vcpu, addr);
- vcpu_put(vcpu);
- return rc;
-}
-
long kvm_arch_vcpu_ioctl(struct file *filp,
unsigned int ioctl, unsigned long arg)
{
struct kvm_vcpu *vcpu = filp->private_data;
void __user *argp = (void __user *)arg;
+ long r;
- switch (ioctl) {
- case KVM_S390_INTERRUPT: {
+ if (ioctl == KVM_S390_INTERRUPT) {
struct kvm_s390_interrupt s390int;
if (copy_from_user(&s390int, argp, sizeof(s390int)))
return -EFAULT;
return kvm_s390_inject_vcpu(vcpu, &s390int);
}
+
+ vcpu_load(vcpu);
+ switch (ioctl) {
case KVM_S390_STORE_STATUS:
- return kvm_s390_vcpu_store_status(vcpu, arg);
+ r = kvm_s390_vcpu_store_status(vcpu, arg);
+ break;
case KVM_S390_SET_INITIAL_PSW: {
psw_t psw;
+ r = -EFAULT;
if (copy_from_user(&psw, argp, sizeof(psw)))
- return -EFAULT;
- return kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
+ break;
+ r = kvm_arch_vcpu_ioctl_set_initial_psw(vcpu, psw);
+ break;
}
case KVM_S390_INITIAL_RESET:
- return kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+ r = kvm_arch_vcpu_ioctl_initial_reset(vcpu);
+ break;
default:
- ;
+ r = -EINVAL;
}
- return -EINVAL;
+ vcpu_put(vcpu);
+ return r;
}
/* Section: memory related */
--
1.7.0.4
next reply other threads:[~2010-05-13 11:17 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-13 11:17 Avi Kivity [this message]
2010-05-13 11:17 ` [PATCH 5/7] KVM: s390: Centrally lock arch specific vcpu ioctls Avi Kivity
2010-05-13 11:17 ` Avi Kivity
-- strict thread matches above, loose matches on Subject: below --
2010-05-13 11:17 [PATCH 7/7] KVM: Consolidate arch specific vcpu ioctl locking Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 [PATCH 6/7] KVM: PPC: Centralize locking of arch specific vcpu ioctls Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 [PATCH 4/7] KVM: x86: Lock arch specific vcpu ioctls centrally Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 [PATCH 2/7] KVM: x86: Add missing locking to arch specific vcpu ioctls Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 [PATCH 1/7] KVM: PPC: Add missing vcpu_load()/vcpu_put() in " Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 [PATCH 0/7] Consolidate vcpu ioctl locking Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` [PATCH 3/7] KVM: move vcpu locking to dispatcher for generic vcpu ioctls Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-13 11:17 ` Avi Kivity
2010-05-15 0:03 ` Marcelo Tosatti
2010-05-16 11:22 ` [PATCH 3/7] KVM: move vcpu locking to dispatcher for generic Avi Kivity
2010-05-16 11:22 ` [PATCH 3/7] KVM: move vcpu locking to dispatcher for generic vcpu ioctls Avi Kivity
2010-05-16 11:22 ` [PATCH 3/7] KVM: move vcpu locking to dispatcher for generic Avi Kivity
2010-05-13 11:57 ` [PATCH 0/7] Consolidate vcpu ioctl locking Alexander Graf
2010-05-13 11:57 ` Alexander Graf
2010-05-13 11:57 ` Alexander Graf
2010-05-13 12:01 ` Avi Kivity
2010-05-13 12:01 ` Avi Kivity
2010-05-13 12:01 ` Avi Kivity
2010-05-13 12:03 ` Avi Kivity
2010-05-13 12:03 ` Avi Kivity
2010-05-13 12:03 ` Avi Kivity
2010-05-13 12:03 ` Avi Kivity
2010-05-13 12:03 ` Avi Kivity
2010-05-13 12:03 ` Avi Kivity
2010-05-13 12:18 ` Alexander Graf
2010-05-13 12:18 ` Alexander Graf
2010-05-13 12:18 ` Alexander Graf
2010-05-13 12:29 ` Avi Kivity
2010-05-13 12:29 ` Avi Kivity
2010-05-13 12:29 ` Avi Kivity
2010-05-13 19:49 ` Alexander Graf
2010-05-13 19:49 ` Alexander Graf
2010-05-13 19:49 ` Alexander Graf
[not found] ` <B2627FBE-BB5E-45E2-8E67-E5859B6380A5-l3A5Bk7waGM@public.gmane.org>
2010-05-15 6:16 ` Avi Kivity
[not found] ` <4BEE3C56.2070007-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-05-15 6:21 ` Alexander Graf
[not found] ` <F7406BC6-90A8-43B9-A57F-6B9350B6D356-l3A5Bk7waGM@public.gmane.org>
2010-05-15 7:59 ` Avi Kivity
[not found] ` <4BEE544B.50405-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-05-15 8:26 ` Alexander Graf
2010-05-15 17:30 ` Avi Kivity
2010-05-15 17:30 ` Avi Kivity
2010-05-15 17:30 ` Avi Kivity
2010-05-16 1:00 ` Alexander Graf
2010-05-16 1:00 ` Alexander Graf
2010-05-16 1:00 ` Alexander Graf
2010-05-16 8:23 ` Avi Kivity
2010-05-16 8:23 ` Avi Kivity
2010-05-16 8:23 ` Avi Kivity
2010-05-16 9:01 ` Alexander Graf
2010-05-16 9:01 ` Alexander Graf
2010-05-16 9:01 ` Alexander Graf
2010-05-16 9:09 ` Avi Kivity
2010-05-16 9:09 ` Avi Kivity
2010-05-16 9:09 ` Avi Kivity
2010-05-16 9:35 ` Alexander Graf
2010-05-16 9:35 ` Alexander Graf
2010-05-16 9:35 ` Alexander Graf
2010-05-16 9:47 ` Avi Kivity
2010-05-16 9:47 ` Avi Kivity
2010-05-16 9:47 ` Avi Kivity
2010-05-16 10:19 ` Alexander Graf
2010-05-16 10:19 ` Alexander Graf
2010-05-16 10:19 ` Alexander Graf
2010-05-21 7:35 ` Carsten Otte
2010-05-21 7:35 ` Carsten Otte
2010-05-21 7:35 ` Carsten Otte
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1273749459-622-6-git-send-email-avi@redhat.com \
--to=avi@redhat.com \
--cc=kvm-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.