Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2582885pxp; Tue, 22 Mar 2022 01:24:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw1QT2u2xK2li97k3J1jvNKTjj1f0eVOtEWlHlCR19v1dHQ8izB/1EWgPgcONERBnmMtpLL X-Received: by 2002:aa7:dbd0:0:b0:416:633c:a0cc with SMTP id v16-20020aa7dbd0000000b00416633ca0ccmr27022777edt.349.1647937489569; Tue, 22 Mar 2022 01:24:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647937489; cv=none; d=google.com; s=arc-20160816; b=MHWt/sk9qtzN08nbE3RZ9Ot9ACilYtYG880CHTPuWa8lootDGvziB9G0RfGDPXcmTy 7DxyK+ppyfrdOIF1HsF4wTY1VDos6+y58ayrhYJolvEakn8IPvqdpl8/vve26lwEWZcj 2ZggkQgSylFCODq3Ocw/m+EroK/39MzjnmzavIBujB13dhbD8P1WtQ+6HZ7pRZ4qFUBp MsQ3HOLnkP/6Cb2v3YU8Xhh3uauNQb4QI8ROutxUCSgPbN/NRuyTMbV/rOrfZgrvxd1w lmdAzDi8DRYG74SlxZmAJcdUfGZxH6VGZtO4R+MQgoT3JeJJYnKyNyji38CQg4aKc0LF RxpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=tBV53gfAtLB3fP5o321O7+SQMgvVIUsp841j85CAZrU=; b=u4d3Sg7cJyLqEUboO1yFF4ug/OkCDV60F8GZM1rqw/Nvsk84KmwIS0Ivj+IbYzv0By cXt4lygZdVSpvHm9S0AcdiikQgLQcGP9NQDDIJAEvg7vPnElZmHHTph9s8CO9fUEW6cO SrdNUGnLlp+OtLsni09utFKxH5m7i4OFdBYqdnbcO2qGZBw31yPNa2AvDCczDx9KP4/N jHfI6Z56+P8jRBpFAqm1qN/iuGYq5l6ywreGGhEzPOzg7vFoykIvQagjDC3cztd/8Nbl K/6+luqgSYowFiTFMMxJTNoQIlvuXB28YI4GZrIGCIdnfdSchd5ZApR4fNMyXKbrwpr9 VlvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=eOdwpFvM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s25-20020a170906779900b006df76385e87si8714547ejm.807.2022.03.22.01.24.24; Tue, 22 Mar 2022 01:24:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=eOdwpFvM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230043AbiCVIL3 (ORCPT + 99 others); Tue, 22 Mar 2022 04:11:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230088AbiCVILX (ORCPT ); Tue, 22 Mar 2022 04:11:23 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1821317AA8 for ; Tue, 22 Mar 2022 01:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647936595; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tBV53gfAtLB3fP5o321O7+SQMgvVIUsp841j85CAZrU=; b=eOdwpFvM2V3JnEHZiQILgYKXqmYOU+tZ/CWebpL2kZjtaEpJUDzYL0VJOcvJAPKM14S79L gVYanVU5BUcxUBWbGkCHgm6uGbh6HJtq8QgxhQgiRZK3qnmnN9F1oeRjRSNeiNkoSrEHMZ k+RFxVlIBy2HO2nSlbg7MBIGBCJJ8oc= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-446-PO0S3A_wOziZB4dY8nXkWw-1; Tue, 22 Mar 2022 04:09:52 -0400 X-MC-Unique: PO0S3A_wOziZB4dY8nXkWw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 47F80899EC4; Tue, 22 Mar 2022 08:09:51 +0000 (UTC) Received: from gshan.redhat.com (ovpn-12-33.pek2.redhat.com [10.72.12.33]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1A89D1121324; Tue, 22 Mar 2022 08:09:43 +0000 (UTC) From: Gavin Shan To: kvmarm@lists.cs.columbia.edu Cc: linux-kernel@vger.kernel.org, eauger@redhat.com, shannon.zhaosl@gmail.com, maz@kernel.org, Jonathan.Cameron@huawei.com, will@kernel.org, pbonzini@redhat.com, james.morse@arm.com, mark.rutland@arm.com, drjones@redhat.com, vkuznets@redhat.com, shan.gavin@gmail.com Subject: [PATCH v5 13/22] KVM: arm64: Support SDEI_FEATURES hypercall Date: Tue, 22 Mar 2022 16:07:01 +0800 Message-Id: <20220322080710.51727-14-gshan@redhat.com> In-Reply-To: <20220322080710.51727-1-gshan@redhat.com> References: <20220322080710.51727-1-gshan@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This supports SDEI_FEATURES hypercall. It's used by the guest to retrieve the supported features, which are number of binding slots and relative mode for the event handler. Currently, none of them is supported. Signed-off-by: Gavin Shan --- arch/arm64/kvm/sdei.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm64/kvm/sdei.c b/arch/arm64/kvm/sdei.c index 0dec35a0eed1..1e0ca9022eaa 100644 --- a/arch/arm64/kvm/sdei.c +++ b/arch/arm64/kvm/sdei.c @@ -662,6 +662,20 @@ static unsigned long hypercall_reset(struct kvm_vcpu *vcpu, bool private) return ret; } +static unsigned long hypercall_features(struct kvm_vcpu *vcpu) +{ + unsigned long feature = smccc_get_arg1(vcpu); + + switch (feature) { + case 0: /* BIND_SLOTS */ + return 0; + case 1: /* RELATIVE_MODE */ + return 0; + } + + return SDEI_INVALID_PARAMETERS; +} + int kvm_sdei_hypercall(struct kvm_vcpu *vcpu) { struct kvm *kvm = vcpu->kvm; @@ -734,6 +748,8 @@ int kvm_sdei_hypercall(struct kvm_vcpu *vcpu) ret = hypercall_reset(vcpu, false); break; case SDEI_1_1_FN_SDEI_FEATURES: + ret = hypercall_features(vcpu); + break; default: ret = SDEI_NOT_SUPPORTED; } -- 2.23.0