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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20064C88CB2 for ; Mon, 12 Jun 2023 17:08:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6C0316B0074; Mon, 12 Jun 2023 13:08:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 66F896B0075; Mon, 12 Jun 2023 13:08:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 537138E0002; Mon, 12 Jun 2023 13:08:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 41B356B0074 for ; Mon, 12 Jun 2023 13:08:27 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0BCE11202CE for ; Mon, 12 Jun 2023 17:08:27 +0000 (UTC) X-FDA: 80894729454.01.21FF91A Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by imf07.hostedemail.com (Postfix) with ESMTP id 2F5DE40019 for ; Mon, 12 Jun 2023 17:08:24 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=JGfnzKQx; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf07.hostedemail.com: domain of pgonda@google.com designates 209.85.167.43 as permitted sender) smtp.mailfrom=pgonda@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686589705; a=rsa-sha256; cv=none; b=YZeAG08ckioF+C9znS3GLNINfP5JpTHBJt/PAD52GOfEAck9YGNvC6wjHCKRU+FZDi8CR1 dI5Gbvt2wMZlfeMeFdWSf1ipf7eNyuBQTDxDQ3W3dRWeg0X/qNx8WXv1rTQFK+2Ill40rE k+9vyTSq2GMpVrXXX+Yy2fKIJ+odLco= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=JGfnzKQx; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf07.hostedemail.com: domain of pgonda@google.com designates 209.85.167.43 as permitted sender) smtp.mailfrom=pgonda@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686589705; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hPHA2iInW/5MWEIDY5sRw7hsczk67ay7y9vys8rDT34=; b=Zvg+rItBnV+YQdKnfuO5sf83hwWTZYbnIB1ir4+RAGKHhSa3JHVI24ykmd5/BHhfdGzGuG Xm1d8XqA/3E/icTkG/9owGdnP5QNS7Aj8kLoL0XD+KvLtHL+5jA+Ea9MuG1FaENzfhGw0o Kox4havCSz0WJxp07MDhSJNCD17qA+Q= Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-4f61efe4584so120e87.1 for ; Mon, 12 Jun 2023 10:08:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686589703; x=1689181703; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hPHA2iInW/5MWEIDY5sRw7hsczk67ay7y9vys8rDT34=; b=JGfnzKQxNy5ZG+svk3pKWyN7ndYnw6Cg9NfAVLy+p80Ss4DBGYrgTioADx2kTru1sI Jiw4Cq4n4CvBniPpQdYSG0bgvTXC/lCBZWwzRI7ImGoniwCx5RT1mmyE3fAVGSZuo6rl kOLCwE/HMFlIkIC68lxhIo0g1ynyfizgcrAin0y7fQOFLdZJL5qPtHBMIMc9HeTz8j3C FV6Fe3V1rWxDiUqDjzbJEvoouy9sNYhVLzaF2X0FSyMHSmG8McHmXGU1sd5SgwDQWOqk lh1TtdgZNNeeCJXKMM8jvJSHzd5f0xl+QTVGjqiepFPlYV7S5SME39tqQGLNNvDwTNuQ OaSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686589703; x=1689181703; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hPHA2iInW/5MWEIDY5sRw7hsczk67ay7y9vys8rDT34=; b=UD9gAV1YrrxR8R6cMEllcTmSeO7ZHyJByt1EsMKSM/8e3x86XfKrUdtiOuKDmg52VD R+Cboj4bBFlm4iNx2i1+cwmcjebNL+A7yUT6qdjgclYBb7BlhYPen9Op2EXeaeg1iDFy +iuxQd6V62yVqnyGAP2VvEKrbfuA8M5LfiImEF6qpb3eLv+ixTOyCt5TBwkVhGtNsujC KCxhk7waN+LKBTJPmOKouF14i4REBq1wDiL8oqGDdeX1kKLUct+RwfIuD7BzmrzdEmNA D4rjYuPfHB2i/OnTELMlQaeWIi7yErOPow9shYari486Ck74QaHbgfHkqKnlY8s2Hrva u4yw== X-Gm-Message-State: AC+VfDwxDNzPnKtjmsDv6P8qCArEDBk6vr6JYHULGRur2BLF2n2NmTYu k002ZOGXY8wxslYD4YWUhN/Mr6tMIGvWKcYbMNimmA== X-Google-Smtp-Source: ACHHUZ75qxKnzvhiDDf0D5IcWH78fHsJ5oE2uWNN4sR3H9U9eFd+mPr5PWjgybS2SATgWNhLMY+e7X97TQ0uvb78OYc= X-Received: by 2002:ac2:4c39:0:b0:4f6:1722:d73a with SMTP id u25-20020ac24c39000000b004f61722d73amr147507lfq.5.1686589702990; Mon, 12 Jun 2023 10:08:22 -0700 (PDT) MIME-Version: 1.0 References: <20230612042559.375660-1-michael.roth@amd.com> <20230612042559.375660-30-michael.roth@amd.com> In-Reply-To: <20230612042559.375660-30-michael.roth@amd.com> From: Peter Gonda Date: Mon, 12 Jun 2023 11:08:11 -0600 Message-ID: Subject: Re: [PATCH RFC v9 29/51] KVM: SVM: Add KVM_SEV_SNP_LAUNCH_START command To: Michael Roth Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com, hpa@zytor.com, ardb@kernel.org, pbonzini@redhat.com, seanjc@google.com, vkuznets@redhat.com, jmattson@google.com, luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, bp@alien8.de, vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com, tony.luck@intel.com, marcorr@google.com, sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com, dgilbert@redhat.com, jarkko@kernel.org, ashish.kalra@amd.com, nikunj.dadhania@amd.com, liam.merwick@oracle.com, zhi.a.wang@intel.com, Brijesh Singh Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 2F5DE40019 X-Stat-Signature: 7ttyk6ghs6ehunwfh4xagpp56j4gjew8 X-HE-Tag: 1686589704-253583 X-HE-Meta: U2FsdGVkX1+NMIuyXI/yhqEcXxr9+iP4x/N5+x7UZQp+cyZfaEAkvFbV8Nx7KAmcqciTuawBOSbkIaM2+I6BdZQAKKYOQsmqqfWflJe0npSVSfSkmMxwpFmXUEHNHHh5xipAJdKCT4NMc2eCXLNfFHvn3Y2B/bJtzWbMItoFsMOoLB09Uzxpgt8oECJi0xfxIGwEGePsUM8Xn0LEmU5Cyoy8SjIXYclkKuJcNbUhNaIpLg07u8egzzVmYHi/5nfXuGriFkDRG7zKecBY0vigDezUGVddGNU/4xU+g7ryQQQURuGE8zkxZ8xZ0yoAJ9EDl++Sq4tg0rdDiTnWq0/uYPmHDbeBhss6wVshghtVSuM784+0QfPfedWm48SBw2wIWk3Ey09J8BClLTvRbMnyCkVYZ0KoosV2Fzm8fq99Lw67GpxrWwJY14O4qzoogaBg+VY40Rv+sdJJBknucBaD0XQcaqHVARz/Qy9ItKkLKCHWzLtoDAqnA3/aHMgHf8JuyvlaYLSsrrdLjQXbicxWuNAQzIb16X2XkBSJ0GGq4UowTaV99ayrGAyA4PAfABUUAoJ8WXCVLmNQojPdhZS5aKSH+p0tJMrwnuCWcak34VHsa38cbPJmCxj9vE8fFxZhtd7LUGmeTxveX4LCPWvBpzvvaxlk0L1oJjzF7KRTrFz90iJQimBpPz2cBBHH9MBmu9A4b3Z63n6X0pOF0NZj8xrb0enVcBM1IYMsxOKaX9RBBK+rQXNJ48AcHzlcRO2Rtyjzo1CymX/XarWyC4syknFnNE9ubUgpmsl4Pg45uDOXYKpXNesKy2kMX07UagjgI5/MOm9Mt6F7SJ9ZrDxKUVVxhAHFdlXw8zTA60uB5/86/jGxTUdfOcqE1VgEZ39Ip7CnbKzV1BLZh8oe+ePXX9+vZsvwHb+q9tqCA7RnNFX1ZTuXT+mvajB3hlLnXSOjmcdFfyq1ZkIv88eglNa AonoJP+0 pkrFO0NfjfE5iiYcjBYGv2FXCePprihWV8hRUU9AdVcdqkvHf78IYx/aEznDWG1DizSJR2IglyKe14StiXxYOajiA1lkgVoKL1jvaI0pC0a+XqR/zfVQWHffSkETmynAPW7sFlQgFZqwRld/m3qMsKRkFbiHZ29Wn6Zu0xi0ONmpox/7+tTRCFe3Js/LH8SPXiAJWCzyV1JbscHc1jShsOu6mE94BBWGjr7/lOwU0EGJWU/09+6BFt6holYCfFcngfUhN64iuU8wtZTd5OM3j5ONdLg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: > + > +static int snp_launch_start(struct kvm *kvm, struct kvm_sev_cmd *argp) > +{ > + struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info; > + struct sev_data_snp_launch_start start = {0}; > + struct kvm_sev_snp_launch_start params; > + int rc; > + > + if (!sev_snp_guest(kvm)) > + return -ENOTTY; > + > + if (copy_from_user(¶ms, (void __user *)(uintptr_t)argp->data, sizeof(params))) > + return -EFAULT; > + > + sev->snp_context = snp_context_create(kvm, argp); > + if (!sev->snp_context) > + return -ENOTTY; I commented on a previous series but I think the bug is still here. I think users can repeatedly call KVM_SEV_SNP_LAUNCH_START to have KVM keep allocating more snp_contexts above. Should we check if the VM already has a |snp_context| and error out if so? > > + > + start.gctx_paddr = __psp_pa(sev->snp_context); > + start.policy = params.policy; > + memcpy(start.gosvw, params.gosvw, sizeof(params.gosvw)); > + rc = __sev_issue_cmd(argp->sev_fd, SEV_CMD_SNP_LAUNCH_START, &start, &argp->error); > + if (rc) > + goto e_free_context; > + > + sev->fd = argp->sev_fd; > + rc = snp_bind_asid(kvm, &argp->error); > + if (rc) > + goto e_free_context; > + > + return 0; > + > +e_free_context: > + snp_decommission_context(kvm); > + > + return rc; > +} > +