From: Paolo Bonzini <pbonzini@redhat.com>
To: Tang Chen <tangchen@cn.fujitsu.com>,
gleb@kernel.org, mtosatti@redhat.com, nadav.amit@gmail.com,
jan.kiszka@web.de
Cc: kvm@vger.kernel.org, laijs@cn.fujitsu.com,
isimatu.yasuaki@jp.fujitsu.com, guz.fnst@cn.fujitsu.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 3/7] kvm: Make init_rmode_identity_map() return 0 on success.
Date: Thu, 11 Sep 2014 11:17:31 +0200 [thread overview]
Message-ID: <541168AB.9070101@redhat.com> (raw)
In-Reply-To: <1410413886-32213-4-git-send-email-tangchen@cn.fujitsu.com>
Il 11/09/2014 07:38, Tang Chen ha scritto:
> In init_rmode_identity_map(), there two variables indicating the return
> value, r and ret, and it return 0 on error, 1 on success. The function
> is only called by vmx_create_vcpu(), and r is redundant.
>
> This patch removes the redundant variable r, and make init_rmode_identity_map()
> return 0 on success, -errno on failure.
>
> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
> ---
> arch/x86/kvm/vmx.c | 25 +++++++++++--------------
> 1 file changed, 11 insertions(+), 14 deletions(-)
>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 953d529..63c4c3e 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -3939,45 +3939,42 @@ out:
>
> static int init_rmode_identity_map(struct kvm *kvm)
> {
> - int i, idx, r, ret = 0;
> + int i, idx, ret = 0;
> pfn_t identity_map_pfn;
> u32 tmp;
>
> if (!enable_ept)
> - return 1;
> + return 0;
>
> /* Protect kvm->arch.ept_identity_pagetable_done. */
> mutex_lock(&kvm->slots_lock);
>
> - if (likely(kvm->arch.ept_identity_pagetable_done)) {
> - ret = 1;
> + if (likely(kvm->arch.ept_identity_pagetable_done))
> goto out2;
> - }
>
> identity_map_pfn = kvm->arch.ept_identity_map_addr >> PAGE_SHIFT;
>
> - r = alloc_identity_pagetable(kvm);
> - if (r)
> + ret = alloc_identity_pagetable(kvm);
> + if (ret)
> goto out2;
>
> idx = srcu_read_lock(&kvm->srcu);
> - r = kvm_clear_guest_page(kvm, identity_map_pfn, 0, PAGE_SIZE);
> - if (r < 0)
> + ret = kvm_clear_guest_page(kvm, identity_map_pfn, 0, PAGE_SIZE);
> + if (ret)
> goto out;
> /* Set up identity-mapping pagetable for EPT in real mode */
> for (i = 0; i < PT32_ENT_PER_PAGE; i++) {
> tmp = (i << 22) + (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER |
> _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_PSE);
> - r = kvm_write_guest_page(kvm, identity_map_pfn,
> + ret = kvm_write_guest_page(kvm, identity_map_pfn,
> &tmp, i * sizeof(tmp), sizeof(tmp));
> - if (r < 0)
> + if (ret)
> goto out;
> }
> kvm->arch.ept_identity_pagetable_done = true;
> - ret = 1;
> +
> out:
> srcu_read_unlock(&kvm->srcu, idx);
> -
> out2:
> mutex_unlock(&kvm->slots_lock);
> return ret;
> @@ -7645,7 +7642,7 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id)
> kvm->arch.ept_identity_map_addr =
> VMX_EPT_IDENTITY_PAGETABLE_ADDR;
> err = -ENOMEM;
> - if (!init_rmode_identity_map(kvm))
> + if (init_rmode_identity_map(kvm))
Please add "< 0" here. I would also consider setting err to the return
value of init_rmode_identity_map, and initializing it to -ENOMEM only
after the "if".
Paolo
> goto free_vmcs;
next prev parent reply other threads:[~2014-09-11 9:17 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-11 5:37 [PATCH v5 0/7] kvm, mem-hotplug: Do not pin ept identity pagetable and apic access page Tang Chen
2014-09-11 5:38 ` [PATCH v5 1/7] kvm: Use APIC_DEFAULT_PHYS_BASE macro as the apic access page address Tang Chen
2014-09-11 9:10 ` Paolo Bonzini
2014-09-11 5:38 ` [PATCH v5 2/7] kvm: Remove ept_identity_pagetable from struct kvm_arch Tang Chen
2014-09-11 9:14 ` Paolo Bonzini
2014-09-11 5:38 ` [PATCH v5 3/7] kvm: Make init_rmode_identity_map() return 0 on success Tang Chen
2014-09-11 9:17 ` Paolo Bonzini [this message]
2014-09-11 10:26 ` tangchen
2014-09-11 5:38 ` [PATCH v5 4/7] kvm, mem-hotplug: Reload L1' apic access page on migration in vcpu_enter_guest() Tang Chen
2014-09-11 9:21 ` Paolo Bonzini
2014-09-11 10:12 ` Gleb Natapov
2014-09-11 10:47 ` Paolo Bonzini
2014-09-11 11:30 ` Gleb Natapov
2014-09-11 13:05 ` Paolo Bonzini
2014-09-11 13:59 ` Gleb Natapov
2014-09-11 14:06 ` Paolo Bonzini
2014-09-11 14:21 ` Gleb Natapov
2014-09-11 14:24 ` Paolo Bonzini
2014-09-11 14:31 ` Gleb Natapov
2014-09-11 14:37 ` Paolo Bonzini
2014-09-11 14:47 ` Gleb Natapov
2014-09-12 3:32 ` tangchen
2014-09-12 3:36 ` tangchen
2014-09-11 10:20 ` tangchen
2014-09-11 10:39 ` Paolo Bonzini
2014-09-11 5:38 ` [PATCH v5 5/7] kvm, mem-hotplug: Reload L1's apic access page on migration when L2 is running Tang Chen
2014-09-11 9:28 ` Paolo Bonzini
2014-09-11 5:38 ` [PATCH v5 6/7] kvm, mem-hotplug: Unpin and remove kvm_arch->apic_access_page Tang Chen
2014-09-11 9:34 ` Paolo Bonzini
2014-09-11 5:38 ` [PATCH v5 7/7] kvm, mem-hotplug: Unpin and remove nested_vmx->apic_access_page Tang Chen
2014-09-11 9:33 ` Paolo Bonzini
2014-09-11 9:43 ` tangchen
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=541168AB.9070101@redhat.com \
--to=pbonzini@redhat.com \
--cc=gleb@kernel.org \
--cc=guz.fnst@cn.fujitsu.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=jan.kiszka@web.de \
--cc=kvm@vger.kernel.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=nadav.amit@gmail.com \
--cc=tangchen@cn.fujitsu.com \
/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.