[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191225133014.1825-1-yuzenghui@huawei.com>
Date: Wed, 25 Dec 2019 21:30:14 +0800
From: Zenghui Yu <yuzenghui@...wei.com>
To: <maz@...nel.org>
CC: <andre.przywara@....com>, <eric.auger@...hat.com>,
<linux-arm-kernel@...ts.infradead.org>,
<kvmarm@...ts.cs.columbia.edu>, <linux-kernel@...r.kernel.org>,
<wanghaibin.wang@...wei.com>, Zenghui Yu <yuzenghui@...wei.com>
Subject: [PATCH] KVM: arm/arm64: vgic-its: Check hopefully the last DISCARD command error
DISCARD command error occurs if any of the following apply:
- [ ... (those which we have already handled) ]
- The EventID for the device is mapped to a collection that
has not been mapped to an RDbase using MAPC.
Let's take the unmapped collection case into account and report
a DISCARD command error if it really happens.
Signed-off-by: Zenghui Yu <yuzenghui@...wei.com>
---
virt/kvm/arm/vgic/vgic-its.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index 17920d1b350a..d53d34a33e35 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -839,9 +839,8 @@ static int vgic_its_cmd_handle_discard(struct kvm *kvm, struct vgic_its *its,
u32 event_id = its_cmd_get_id(its_cmd);
struct its_ite *ite;
-
ite = find_ite(its, device_id, event_id);
- if (ite && ite->collection) {
+ if (ite && its_is_collection_mapped(ite->collection)) {
/*
* Though the spec talks about removing the pending state, we
* don't bother here since we clear the ITTE anyway and the
--
2.19.1
Powered by blists - more mailing lists