From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BE520C43334 for ; Fri, 15 Jul 2022 06:49:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=T3Q1BpKonusSRIiOP7aDw5FUt+rVrwXCSehIWNW7lMQ=; b=SV+w7IlFk10YeA HIsNRf/oaD97u9PweWp4pO2zPZ7wvQduTlOCPcliNg0tn9LUo08X8M3gXOjKhX66tZ6RUXfMzbywg YGuZEHKP0OnhBkEkj7ZJGm3wsevZLpP3+r6s5pXnDhl/wgNbG6Uz3y9KTHAAb5d0z2u20ZlSXhLLJ 9oM5OYJMb4pbMfgjLHf3OYV+XO16dSJMpZvAoAxvc9hgyNVb1RE3sqZZvTvsX2z/UFvn5ozJyDquH vdbdJqNdtdQQEUU7PZPy/Jb6/u/v1ILJ8Av8UQdF0mOu+qu9U3CoZKTAmROw1j8+p4i8oJ7WMBDkw OU5DuKM+qRoPbY07vvWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oCF7e-004iFr-F1; Fri, 15 Jul 2022 06:48:23 +0000 Received: from mail-ua1-x932.google.com ([2607:f8b0:4864:20::932]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oCF46-004gqO-Rr for linux-arm-kernel@lists.infradead.org; Fri, 15 Jul 2022 06:44:44 +0000 Received: by mail-ua1-x932.google.com with SMTP id f10so1504487uam.0 for ; Thu, 14 Jul 2022 23:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=p6aDTSAubguJZg+3J+aZpS+pct8nChj++g4A7S8KF7M=; b=Jnbw9hVnECgNwloAV8Mr84FXTmguVIg5NfAo3mkCvlZ4hKp8wmbAxT8ZXMLH50tbHb 2AtcqfP7CDR/M2LkGerzE4RjbEo3t0+wZ9znySMf0cboWxAHISnGNymaU4u4n+DgDwhw xYDBbeKC7uGCempsmTNjSBbKGkPxxwW3Lqd2C0PTh/i165tqfnkbP9i7mbujFw+EPnEZ 0W1uYTZ92SNd5HFvJYLmeUvWHvtwMq0ad8SjNTIwuNai2ZMDD4PXZt1XZSsnuQ2QBtGi BNiQD6ngvkYHgXMzozebc4+/+kt2uNmiAg7HN/zBnwKI+0QIme1wAPU4861wQ7qFEZXb 9YRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=p6aDTSAubguJZg+3J+aZpS+pct8nChj++g4A7S8KF7M=; b=kevpasidN32+GursKxTQM7kH/zQClp+fMv1PYveDDMjKnqjEpYSYivwtL0vtzmmz/5 FDVa81J79RTthjI7heVk4m2TmIXQDEOD/pcVkjSKWSVpg17M6FjrVz9p68XJ8INcamEq d+MLjls5WjLsVZM1z/VfiQyHkiCzKyUEh+CSavsqZY8zvzItZy3cGI/A2vXmSSPl0ffY NWWpqe014B9eFamxHCbQt83MBeTJrlavvxUUhUX8R8ccg1/RYQljw+wtoTfwbBKesBiH +HbeEIts/usdEz/RKEyM8ZGC8KEkqJeAyE1gpJwMsq7XJHQurFjbCbxl7w8qUgKvluAu aOyw== X-Gm-Message-State: AJIora/fXE0Uppt6u2N2scoEA2fDDzDp1pZV0cKKSAPgsayEApQEYfor Vgj2b/1hOqDvkh7jFm5nHOH1VMZnjf6vmKgiWjzLWA== X-Google-Smtp-Source: AGRyM1uWE0AM135v8bgmHTfGGyyoJpV55Gqxr8UiXmUhCXS1dGfLbxzAYnRhlP4kgcMpR7lq+JXvgxe6eP5xZy9syp8= X-Received: by 2002:a05:6130:90:b0:362:891c:edef with SMTP id x16-20020a056130009000b00362891cedefmr5471902uaf.106.1657867477456; Thu, 14 Jul 2022 23:44:37 -0700 (PDT) MIME-Version: 1.0 References: <20220706164304.1582687-1-maz@kernel.org> <20220706164304.1582687-16-maz@kernel.org> <877d4gyy7y.wl-maz@kernel.org> In-Reply-To: <877d4gyy7y.wl-maz@kernel.org> From: Reiji Watanabe Date: Thu, 14 Jul 2022 23:44:21 -0700 Message-ID: Subject: Re: [PATCH 15/19] KVM: arm64: vgic-v2: Add helper for legacy dist/cpuif base address setting To: Marc Zyngier Cc: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Linux ARM , Schspa Shi , kernel-team@android.com, Oliver Upton X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220714_234443_025437_C83BBF33 X-CRM114-Status: GOOD ( 26.40 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Jul 14, 2022 at 12:01 AM Marc Zyngier wrote: > > On Thu, 14 Jul 2022 07:37:25 +0100, > Reiji Watanabe wrote: > > > > Hi Marc, > > > > On Wed, Jul 6, 2022 at 10:05 AM Marc Zyngier wrote: > > > > > > We carry a legacy interface to set the base addresses for GICv2. > > > As this is currently plumbed into the same handling code as > > > the modern interface, it limits the evolution we can make there. > > > > > > Add a helper dedicated to this handling, with a view of maybe > > > removing this in the future. > > > > > > Signed-off-by: Marc Zyngier > > > --- > > > arch/arm64/kvm/arm.c | 11 ++------- > > > arch/arm64/kvm/vgic/vgic-kvm-device.c | 32 +++++++++++++++++++++++++++ > > > include/kvm/arm_vgic.h | 1 + > > > 3 files changed, 35 insertions(+), 9 deletions(-) > > > > > > diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c > > > index 83a7f61354d3..bf39570c0aef 100644 > > > --- a/arch/arm64/kvm/arm.c > > > +++ b/arch/arm64/kvm/arm.c > > > @@ -1414,18 +1414,11 @@ void kvm_arch_flush_remote_tlbs_memslot(struct kvm *kvm, > > > static int kvm_vm_ioctl_set_device_addr(struct kvm *kvm, > > > struct kvm_arm_device_addr *dev_addr) > > > { > > > - unsigned long dev_id, type; > > > - > > > - dev_id = (dev_addr->id & KVM_ARM_DEVICE_ID_MASK) >> > > > - KVM_ARM_DEVICE_ID_SHIFT; > > > - type = (dev_addr->id & KVM_ARM_DEVICE_TYPE_MASK) >> > > > - KVM_ARM_DEVICE_TYPE_SHIFT; > > > - > > > - switch (dev_id) { > > > + switch (FIELD_GET(KVM_ARM_DEVICE_ID_MASK, dev_addr->id)) { > > > case KVM_ARM_DEVICE_VGIC_V2: > > > if (!vgic_present) > > > return -ENXIO; > > > - return kvm_vgic_addr(kvm, type, &dev_addr->addr, true); > > > + return kvm_set_legacy_vgic_v2_addr(kvm, dev_addr); > > > default: > > > return -ENODEV; > > > } > > > diff --git a/arch/arm64/kvm/vgic/vgic-kvm-device.c b/arch/arm64/kvm/vgic/vgic-kvm-device.c > > > index fbbd0338c782..0dfd277b9058 100644 > > > --- a/arch/arm64/kvm/vgic/vgic-kvm-device.c > > > +++ b/arch/arm64/kvm/vgic/vgic-kvm-device.c > > > @@ -41,6 +41,38 @@ static int vgic_check_type(struct kvm *kvm, int type_needed) > > > return 0; > > > } > > > > > > +int kvm_set_legacy_vgic_v2_addr(struct kvm *kvm, struct kvm_arm_device_addr *dev_addr) > > > +{ > > > + struct vgic_dist *vgic = &kvm->arch.vgic; > > > + int r; > > > + > > > + mutex_lock(&kvm->lock); > > > + switch (FIELD_GET(KVM_ARM_DEVICE_ID_MASK, dev_addr->id)) { > > > > Shouldn't this be KVM_ARM_DEVICE_TYPE_MASK (not KVM_ARM_DEVICE_ID_MASK) ? > > Damn, you just ruined my attempt at deprecating this API ;-). Oops, I should have pretended not to notice:) > More seriously, thanks for catching this one! Thank you for cleaning up the code so much! Reiji _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel