[PATCH] KVM: arm/arm64: GICv4: Do not perform an map to a mapped vLPI
Kunkun Jiang
jiangkunkun at huawei.com
Fri Nov 17 01:54:37 PST 2023
Hi Marc,
On 2023/11/16 22:10, Marc Zyngier wrote:
> On Thu, 16 Nov 2023 12:52:15 +0000,
> Kunkun Jiang <jiangkunkun at huawei.com> wrote:
>> Before performing an unmap, let's check whether the vLPI has been
s/unmap/map
>> mapped. This corresponds to checking whether a vLPI is valid before
>> unmap it.
>>
>> Signed-off-by: Kunkun Jiang <jiangkunkun at huawei.com>
>> ---
>> arch/arm64/kvm/vgic/vgic-v4.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/arm64/kvm/vgic/vgic-v4.c b/arch/arm64/kvm/vgic/vgic-v4.c
>> index 339a55194b2c..824f4baf50ee 100644
>> --- a/arch/arm64/kvm/vgic/vgic-v4.c
>> +++ b/arch/arm64/kvm/vgic/vgic-v4.c
>> @@ -436,6 +436,11 @@ int kvm_vgic_v4_set_forwarding(struct kvm *kvm, int virq,
>> if (ret)
>> goto out;
>>
>> + if (irq->hw) {
>> + ret = -EBUSY;
>> + goto out;
>> + }
>> +
> So this code affects the mapping side, not the unmapping. Even more
> confusingly, the subject of the patch doesn't match the commit
> message.
>
> Furthermore, I'm not sure we want to return an error here. Userspace
> has no knowledge of GICv4, and there are numerous other cases where we
> don't return any error. This is certainly a userspace visible change.
Yes, Userspace has no knowledge of GICv4. In the current implementation,
this error will not be presented to userspace. Only a log will be printed
in kvm_irqfd_assign().
> #ifdef CONFIG_HAVE_KVM_IRQ_BYPASS
> if (kvm_arch_has_irq_bypass()) {
> irqfd->consumer.token = (void *)irqfd->eventfd;
> irqfd->consumer.add_producer =
kvm_arch_irq_bypass_add_producer;
> irqfd->consumer.del_producer =
kvm_arch_irq_bypass_del_producer;
> irqfd->consumer.stop = kvm_arch_irq_bypass_stop;
> irqfd->consumer.start = kvm_arch_irq_bypass_start;
> ret = irq_bypass_register_consumer(&irqfd->consumer);
> if (ret)
> pr_info("irq bypass consumer (token %p)
registration fails: %d\n",
> irqfd->consumer.token, ret);
> }
> #endif
If you think it is better not to return an error, I will modify it in
the next version.
Looking forwarding to your reply.
Thanks,
Kunkun Jiang
More information about the linux-arm-kernel
mailing list