From: Christoffer Dall <cdall@linaro.org>
To: Eric Auger <eric.auger@redhat.com>
Cc: eric.auger.pro@gmail.com, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
marc.zyngier@arm.com, peter.maydell@linaro.org,
andre.przywara@arm.com, wanghaibin.wang@huawei.com,
wu.wubin@huawei.com, drjones@redhat.com, wei@redhat.com
Subject: Re: [PATCH v5 01/10] KVM: arm/arm64: vgic-its: Fix return value for device table restore
Date: Tue, 24 Oct 2017 18:02:20 +0200 [thread overview]
Message-ID: <20171024160220.GB91785@lvm> (raw)
In-Reply-To: <1508767709-15256-2-git-send-email-eric.auger@redhat.com>
On Mon, Oct 23, 2017 at 04:08:20PM +0200, Eric Auger wrote:
> From: wanghaibin <wanghaibin.wang@huawei.com>
>
> If ITT only contains invalid entries, vgic_its_restore_itt
> returns 1 and this is considered as an an error in
> vgic_its_restore_dte.
>
> Also in case the device table only contains invalid entries,
> the table restore fails and this is not correct.
>
> This patch fixes those 2 issues:
> - vgic_its_restore_itt now returns <= 0 values. If all
> ITEs are invalid, this is considered as successful.
> - vgic_its_restore_device_tables also returns <= 0 values.
>
> We also simplify the returned value computation in
> handle_l1_dte.
>
> Signed-off-by: wanghaibin <wanghaibin.wang@huawei.com>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
>
> ---
>
> need to CC'ed stable
>
> v2 -> v3:
> - add comments
> - vgic_its_restore_itt don't return +1 anymore
> - reword the commit message
>
> v1 -> v2:
> - if (ret > 0) ret = 0
> ---
> virt/kvm/arm/vgic/vgic-its.c | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
> index f51c1e1..d27a301 100644
> --- a/virt/kvm/arm/vgic/vgic-its.c
> +++ b/virt/kvm/arm/vgic/vgic-its.c
> @@ -1940,6 +1940,14 @@ static int vgic_its_save_itt(struct vgic_its *its, struct its_device *device)
> return 0;
> }
>
> +/**
> + * vgic_its_restore_itt - restore the ITT of a device
> + *
> + * @its: its handle
> + * @dev: device handle
> + *
> + * Return 0 on success, < 0 on error
> + */
> static int vgic_its_restore_itt(struct vgic_its *its, struct its_device *dev)
> {
> const struct vgic_its_abi *abi = vgic_its_get_abi(its);
> @@ -1951,6 +1959,10 @@ static int vgic_its_restore_itt(struct vgic_its *its, struct its_device *dev)
> ret = scan_its_table(its, base, max_size, ite_esz, 0,
> vgic_its_restore_ite, dev);
>
> + /* scan_its_table returns +1 if all ITEs are invalid */
> + if (ret > 0)
> + ret = 0;
> +
> return ret;
> }
>
> @@ -2107,10 +2119,7 @@ static int handle_l1_dte(struct vgic_its *its, u32 id, void *addr,
> ret = scan_its_table(its, gpa, SZ_64K, dte_esz,
> l2_start_id, vgic_its_restore_dte, NULL);
>
> - if (ret <= 0)
> - return ret;
> -
> - return 1;
> + return ret;
> }
>
> /**
> @@ -2140,8 +2149,9 @@ static int vgic_its_restore_device_tables(struct vgic_its *its)
> vgic_its_restore_dte, NULL);
> }
>
> + /* scan_its_table returns +1 if all entries are invalid */
> if (ret > 0)
> - ret = -EINVAL;
> + ret = 0;
>
> return ret;
> }
> --
> 2.5.5
>
next prev parent reply other threads:[~2017-10-24 16:02 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-23 14:08 [PATCH v5 00/10] vITS Migration fixes and reset Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-23 14:08 ` [PATCH v5 01/10] KVM: arm/arm64: vgic-its: Fix return value for device table restore Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-24 16:02 ` Christoffer Dall [this message]
2017-10-23 14:08 ` [PATCH v5 02/10] KVM: arm/arm64: vgic-its: Fix vgic_its_restore_collection_table returned value Eric Auger
2017-10-24 16:15 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 03/10] KVM: arm/arm64: vgic-its: Check CBASER/BASER validity before enabling the ITS Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 9:38 ` Marc Zyngier
2017-10-25 9:38 ` Marc Zyngier
2017-10-25 9:46 ` Marc Zyngier
2017-10-25 9:46 ` Marc Zyngier
2017-10-25 11:52 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 04/10] KVM: arm/arm64: vgic-its: Check GITS_BASER Valid bit before saving tables Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 9:47 ` Marc Zyngier
2017-10-25 9:47 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 05/10] KVM: arm/arm64: vgic-its: Save the collection table before device tables Eric Auger
2017-10-25 9:59 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 06/10] KVM: arm/arm64: vgic-its: Remove kvm_its_unmap_device Eric Auger
2017-10-25 9:45 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 07/10] KVM: arm/arm64: vgic-its: New helper functions to free the caches Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 10:31 ` Christoffer Dall
2017-10-25 10:31 ` Christoffer Dall
2017-10-25 10:31 ` Marc Zyngier
2017-10-25 10:31 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 08/10] KVM: arm/arm64: vgic-its: Free caches when GITS_BASER Valid bit is cleared Eric Auger
2017-10-25 10:23 ` Marc Zyngier
2017-10-25 10:23 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 09/10] KVM: arm/arm64: Document KVM_DEV_ARM_ITS_CTRL_RESET Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 10:40 ` Marc Zyngier
2017-10-25 10:40 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 10/10] KVM: arm/arm64: vgic-its: Implement KVM_DEV_ARM_ITS_CTRL_RESET Eric Auger
2017-10-25 10:52 ` Marc Zyngier
2017-10-25 10:52 ` Marc Zyngier
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=20171024160220.GB91785@lvm \
--to=cdall@linaro.org \
--cc=andre.przywara@arm.com \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=eric.auger@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=peter.maydell@linaro.org \
--cc=wanghaibin.wang@huawei.com \
--cc=wei@redhat.com \
--cc=wu.wubin@huawei.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.