From patchwork Thu Feb 18 15:16:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Connor Kuehl X-Patchwork-Id: 12093627 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93E1BC433DB for ; Thu, 18 Feb 2021 15:18:07 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2C96364EAD for ; Thu, 18 Feb 2021 15:18:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2C96364EAD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:47616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lCl4A-0007ck-39 for qemu-devel@archiver.kernel.org; Thu, 18 Feb 2021 10:18:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39528) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lCl2q-00069S-QB for qemu-devel@nongnu.org; Thu, 18 Feb 2021 10:16:46 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:57541) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lCl2m-00087i-FR for qemu-devel@nongnu.org; Thu, 18 Feb 2021 10:16:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1613661399; 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=YVIbHF9hFW5nfND/RpDpRvmUiEYA5B3GV9Ps616yJNU=; b=RbJI4ntqN7Rkrz/qjZhbBLibOFRaP0OlocBN4xFaRSkn2Z+xbNzEtttbc9nyOyD2agoU6E Bbjy3FKuXvjcEjCFFXQ5+fSDMPXCT5vPIhUmtz4lhdb97xKf8NBG5USKu0Dn+gdTkarZzA hA34jTQuJdmV0mzjzkHHSzHE0KvfQok= Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-19-JugqRt5XNsiUWG4qJ14JoQ-1; Thu, 18 Feb 2021 10:16:38 -0500 X-MC-Unique: JugqRt5XNsiUWG4qJ14JoQ-1 Received: by mail-oo1-f72.google.com with SMTP id n9so1289678oom.5 for ; Thu, 18 Feb 2021 07:16:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YVIbHF9hFW5nfND/RpDpRvmUiEYA5B3GV9Ps616yJNU=; b=fgF8i+KaCt8QjUk0wq6O/mBgclS7sRnakcOU6YmMB2W6/6Kl7E/PbVuu9uB3gscm+c YPbSqxMBcIfMR0oM7zhsfOQ4ktDhXaLa01jH8msx5xyb5T1b7mZjIAb2pGvvd9cslMFI JEEXtTfCxIhcJufrSykNWbjYavH4gNBdCAOfE6li0vrj4+klBVdHyYLZDmZ1TI4vsGOA fEsbFThrAdCvwD9ltWNNdpu+Tx0bnggwQmOBYroFlRULLRydiVKQcRvSJo4XFjc2pQrC 2gmcChjb6BgVtGMu/GqLUdGNobA4YXquI8JvZ0nb4t5IOiigKU47YfLzhZUH4sbZW5dA vS9Q== X-Gm-Message-State: AOAM531CyDu4oDkuy45CgKId5qf461DgzYzbWN0uoCbzm3bm6qKT++bW nwV2A3gyhrEDld7CdBgtgggOY4bXnbTYo3nM+6xYJbO1Q4TVgVE+E/fXkmEa0hcBo4Qs1AnB/7u Prwh/WukRDq0JrjPBvKeIQRjw3F6FgEPwG+TnSp2da332VCRwMaG1ptMbwg9oaAQo X-Received: by 2002:aca:b154:: with SMTP id a81mr3061888oif.136.1613661396268; Thu, 18 Feb 2021 07:16:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzGdk6pIn/OCSs7hYdTi1+cS55YASpU/tA/tbYJdQOJmk8Cwjk836hM412x6OpoT3sCNVwPLQ== X-Received: by 2002:aca:b154:: with SMTP id a81mr3061866oif.136.1613661396093; Thu, 18 Feb 2021 07:16:36 -0800 (PST) Received: from redhat.redhat.com (ip68-103-222-6.ks.ok.cox.net. [68.103.222.6]) by smtp.gmail.com with ESMTPSA id w134sm1212136oia.56.2021.02.18.07.16.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Feb 2021 07:16:35 -0800 (PST) From: Connor Kuehl To: qemu-devel@nongnu.org Subject: [PATCH 1/2] sev: use explicit indices for mapping firmware error codes to strings Date: Thu, 18 Feb 2021 09:16:32 -0600 Message-Id: <20210218151633.215374-2-ckuehl@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210218151633.215374-1-ckuehl@redhat.com> References: <20210218151633.215374-1-ckuehl@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ckuehl@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=216.205.24.124; envelope-from=ckuehl@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, richard.henderson@linaro.org, ehabkost@redhat.com, brijesh.singh@amd.com, thomas.lendacky@amd.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This can help lower any margin for error when making future additions to the list, especially if they're made out of order. While doing so, make capitalization of ASID consistent with its usage in the SEV firmware spec (Asid -> ASID). Signed-off-by: Connor Kuehl --- target/i386/sev.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/target/i386/sev.c b/target/i386/sev.c index 0f414df02f..0de690058e 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -88,29 +88,29 @@ static SevGuestState *sev_guest; static Error *sev_mig_blocker; static const char *const sev_fw_errlist[] = { - "", - "Platform state is invalid", - "Guest state is invalid", - "Platform configuration is invalid", - "Buffer too small", - "Platform is already owned", - "Certificate is invalid", - "Policy is not allowed", - "Guest is not active", - "Invalid address", - "Bad signature", - "Bad measurement", - "Asid is already owned", - "Invalid ASID", - "WBINVD is required", - "DF_FLUSH is required", - "Guest handle is invalid", - "Invalid command", - "Guest is active", - "Hardware error", - "Hardware unsafe", - "Feature not supported", - "Invalid parameter" + [SEV_RET_SUCCESS] = "", + [SEV_RET_INVALID_PLATFORM_STATE] = "Platform state is invalid", + [SEV_RET_INVALID_GUEST_STATE] = "Guest state is invalid", + [SEV_RET_INAVLID_CONFIG] = "Platform configuration is invalid", + [SEV_RET_INVALID_LEN] = "Buffer too small", + [SEV_RET_ALREADY_OWNED] = "Platform is already owned", + [SEV_RET_INVALID_CERTIFICATE] = "Certificate is invalid", + [SEV_RET_POLICY_FAILURE] = "Policy is not allowed", + [SEV_RET_INACTIVE] = "Guest is not active", + [SEV_RET_INVALID_ADDRESS] = "Invalid address", + [SEV_RET_BAD_SIGNATURE] = "Bad signature", + [SEV_RET_BAD_MEASUREMENT] = "Bad measurement", + [SEV_RET_ASID_OWNED] = "ASID is already owned", + [SEV_RET_INVALID_ASID] = "Invalid ASID", + [SEV_RET_WBINVD_REQUIRED] = "WBINVD is required", + [SEV_RET_DFFLUSH_REQUIRED] = "DF_FLUSH is required", + [SEV_RET_INVALID_GUEST] = "Guest handle is invalid", + [SEV_RET_INVALID_COMMAND] = "Invalid command", + [SEV_RET_ACTIVE] = "Guest is active", + [SEV_RET_HWSEV_RET_PLATFORM] = "Hardware error", + [SEV_RET_HWSEV_RET_UNSAFE] = "Hardware unsafe", + [SEV_RET_UNSUPPORTED] = "Feature not supported", + [SEV_RET_INVALID_PARAM] = "Invalid parameter", }; #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist) From patchwork Thu Feb 18 15:16:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Connor Kuehl X-Patchwork-Id: 12093629 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D6EEC433E0 for ; Thu, 18 Feb 2021 15:19:42 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9F64964E28 for ; Thu, 18 Feb 2021 15:19:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F64964E28 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:51698 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lCl5g-0000tu-Kc for qemu-devel@archiver.kernel.org; Thu, 18 Feb 2021 10:19:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39536) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lCl2s-00069b-HD for qemu-devel@nongnu.org; Thu, 18 Feb 2021 10:16:48 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:43940) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1lCl2m-00087h-GM for qemu-devel@nongnu.org; Thu, 18 Feb 2021 10:16:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1613661399; 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=dCNOGinASz/2sD0UTET/R9UvyLzESuoVoDx4ZcDxF/Q=; b=P6Eeqrg7yT3LNTU22rVGbQcxFwOGovGDnuMbQmTh+yPCdSEtF80RM3NC07XIb8S9yP3mIP quDdgxzVnFw/zXZBLbXZqAe+OKEX2egHV5D1kf+44EJJmQ0T67TCUDQdUucwIl5wZ97aDN E/2iSVIbjl9daks+7kxBCZbncuSuGjk= Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-283-a--XCiHgPmuH4pwlpeFI2A-1; Thu, 18 Feb 2021 10:16:38 -0500 X-MC-Unique: a--XCiHgPmuH4pwlpeFI2A-1 Received: by mail-oo1-f70.google.com with SMTP id g190so1282873oob.13 for ; Thu, 18 Feb 2021 07:16:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dCNOGinASz/2sD0UTET/R9UvyLzESuoVoDx4ZcDxF/Q=; b=A/T+YGe+TRbFg1BWtAI4tg5eQDAL9tarCpkVySTh25i8hzxVufcEcmPg3x2yYeal4v q23Mbu+IuO75RBC9WtiURCZvcvwYoqSDLvn11Jp4kY4etOG3BDwupdfSP2YvRE1ZNJiJ X6pqbBGPELkby4aVIhirtNwEbFgQZn+gEhF9Y7ookEICe2BkcNkz9Q5JXb/zxXUeM7Ba nznb9GALDNbGrRs6omIiz6Xw9kf6caw1puCf2Yd3EqlFk9az6XEQiKiRdMhSwbi8bI14 r0BPQzFTwA0rfkvxsnOsNp5N8jh2j3oOje7QfBCdzic+uhHK3+Zri7eibKsA3I7lzT2b QtDg== X-Gm-Message-State: AOAM5318cAgo27xY2iU8f8p4Jlzhk3BPC14Bfz/GerJ7ZsoKj+OfCM+L 1Q/412GeGLFn8Jr0o86Gphxx4ziABNOo96vC5ctXc/oQ35/7EZbEwYUb8VnptESHHq/zCWaAFXZ xHqMmuLBUYa8F34lkV3wWZuCLUyYuSr8QcF55n+NGCgvJ+CXqExdDxEOT3zOKsc+0 X-Received: by 2002:a05:6830:1146:: with SMTP id x6mr3254895otq.120.1613661397332; Thu, 18 Feb 2021 07:16:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQF56lGik+iPqsdEOMo5Z2daQpBP6Agwx++080y2CiM6xJxX4pqXLi62QzhAGwMFkRkGlwMA== X-Received: by 2002:a05:6830:1146:: with SMTP id x6mr3254874otq.120.1613661397136; Thu, 18 Feb 2021 07:16:37 -0800 (PST) Received: from redhat.redhat.com (ip68-103-222-6.ks.ok.cox.net. [68.103.222.6]) by smtp.gmail.com with ESMTPSA id w134sm1212136oia.56.2021.02.18.07.16.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Feb 2021 07:16:36 -0800 (PST) From: Connor Kuehl To: qemu-devel@nongnu.org Subject: [PATCH 2/2] sev: add missing firmware error conditions Date: Thu, 18 Feb 2021 09:16:33 -0600 Message-Id: <20210218151633.215374-3-ckuehl@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210218151633.215374-1-ckuehl@redhat.com> References: <20210218151633.215374-1-ckuehl@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ckuehl@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=216.205.24.124; envelope-from=ckuehl@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, richard.henderson@linaro.org, ehabkost@redhat.com, brijesh.singh@amd.com, thomas.lendacky@amd.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" The SEV userspace header[1] exports a couple of other error conditions that aren't listed in QEMU's SEV implementation, so let's just round out the list. [1] linux-headers/linux/psp-sev.h Signed-off-by: Connor Kuehl --- target/i386/sev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/i386/sev.c b/target/i386/sev.c index 0de690058e..37690ae809 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -111,6 +111,8 @@ static const char *const sev_fw_errlist[] = { [SEV_RET_HWSEV_RET_UNSAFE] = "Hardware unsafe", [SEV_RET_UNSUPPORTED] = "Feature not supported", [SEV_RET_INVALID_PARAM] = "Invalid parameter", + [SEV_RET_RESOURCE_LIMIT] = "Required firmware resource depleted", + [SEV_RET_SECURE_DATA_INVALID] = "Part-specific integrity check failure", }; #define SEV_FW_MAX_ERROR ARRAY_SIZE(sev_fw_errlist)