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 D9EE3C433FE for ; Sat, 1 Oct 2022 20:18:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E1C298D0002; Sat, 1 Oct 2022 16:18:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DCC2A8D0001; Sat, 1 Oct 2022 16:18:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C6C928D0002; Sat, 1 Oct 2022 16:18:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id B528F8D0001 for ; Sat, 1 Oct 2022 16:18:21 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 86D53160622 for ; Sat, 1 Oct 2022 20:18:21 +0000 (UTC) X-FDA: 79973492802.02.91897C2 Received: from mail.skyhub.de (mail.skyhub.de [5.9.137.197]) by imf22.hostedemail.com (Postfix) with ESMTP id 8F050C000B for ; Sat, 1 Oct 2022 20:18:14 +0000 (UTC) Received: from zn.tnic (p200300ea9733e707329c23fffea6a903.dip0.t-ipconnect.de [IPv6:2003:ea:9733:e707:329c:23ff:fea6:a903]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.skyhub.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id F09741EC04DA; Sat, 1 Oct 2022 22:17:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=dkim; t=1664655469; 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:in-reply-to:in-reply-to: references:references; bh=tXCw4blOG+lgy0RC4YVDWEQazozj/sfZ7AxmRf2ywac=; b=Ilt2Azug3dgD7p5q8FQ6FAcg3y4AxHmVpXskS1Rdymmr14GKLinVzTb6x0N0DPGVGZ+YWL I8HeuPZPKq/nHiLmefe8/8hZFuIN3Hj4skqvfwNEHH3msW+wK/mvst85sbei5JlEy6hWE8 IIkNRyj0e2hpKjLtle207nbefi4lk1o= Date: Sat, 1 Oct 2022 22:17:44 +0200 From: Borislav Petkov To: Ashish Kalra Cc: x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@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, pgonda@google.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, michael.roth@amd.com, 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 Subject: Re: [PATCH Part2 v6 13/49] crypto:ccp: Provide APIs to issue SEV-SNP commands Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=Ilt2Azug; spf=temperror (imf22.hostedemail.com: error in processing during lookup of bp@alien8.de: DNS error) smtp.mailfrom=bp@alien8.de; dmarc=temperror reason="server fail" header.from=alien8.de (policy=temperror) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1664655501; a=rsa-sha256; cv=none; b=iEkrtfhIoDZxcSB9UfUI/KWqQToNU9kaFIUXd8J7+NvPR06aLDdkXjmYrLGr59FnNFsj9v kJNETATBH4iO0+Fvhky2xbXyLtcdpVR/+aYD63XamrICSw99pSKi3d1POnZW1o3wVOSwbv hxeS1/3NarkHcbYNsfHBV10AnO+qM4E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1664655501; 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=tXCw4blOG+lgy0RC4YVDWEQazozj/sfZ7AxmRf2ywac=; b=DN4Hie7MC8ZpycUlgrX714fAt/OJuhEkcu2jcz/9pblDduJ1rgyu5o9pcdULfE5TeTRZRG 2dHFnWJO2CJ8imuiSSOQWvg7zY8Pq0u0q/AsXu9o/LskY8OzdyI84izCyAv/r8sV+8zJ90 xj47FXdl8Vs490IzMbRhAcv49lY0FuY= X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 8F050C000B X-Rspam-User: Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=alien8.de header.s=dkim header.b=Ilt2Azug; spf=temperror (imf22.hostedemail.com: error in processing during lookup of bp@alien8.de: DNS error) smtp.mailfrom=bp@alien8.de; dmarc=temperror reason="server fail" header.from=alien8.de (policy=temperror) X-Stat-Signature: zmjecb5ggqq1d5gusmha39kebpogdcuf X-HE-Tag: 1664655494-850945 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: On Mon, Jun 20, 2022 at 11:04:45PM +0000, Ashish Kalra wrote: > From: Brijesh Singh > > Provide the APIs for the hypervisor to manage an SEV-SNP guest. The > commands for SEV-SNP is defined in the SEV-SNP firmware specification. > > Signed-off-by: Brijesh Singh > --- > drivers/crypto/ccp/sev-dev.c | 24 ++++++++++++ > include/linux/psp-sev.h | 73 ++++++++++++++++++++++++++++++++++++ > 2 files changed, 97 insertions(+) > > diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c > index f1173221d0b9..35d76333e120 100644 > --- a/drivers/crypto/ccp/sev-dev.c > +++ b/drivers/crypto/ccp/sev-dev.c > @@ -1205,6 +1205,30 @@ int sev_guest_df_flush(int *error) > } > EXPORT_SYMBOL_GPL(sev_guest_df_flush); > > +int snp_guest_decommission(struct sev_data_snp_decommission *data, int *error) > +{ > + return sev_do_cmd(SEV_CMD_SNP_DECOMMISSION, data, error); > +} > +EXPORT_SYMBOL_GPL(snp_guest_decommission); > + > +int snp_guest_df_flush(int *error) > +{ > + return sev_do_cmd(SEV_CMD_SNP_DF_FLUSH, NULL, error); > +} > +EXPORT_SYMBOL_GPL(snp_guest_df_flush); > + > +int snp_guest_page_reclaim(struct sev_data_snp_page_reclaim *data, int *error) > +{ > + return sev_do_cmd(SEV_CMD_SNP_PAGE_RECLAIM, data, error); > +} > +EXPORT_SYMBOL_GPL(snp_guest_page_reclaim); > + > +int snp_guest_dbg_decrypt(struct sev_data_snp_dbg *data, int *error) > +{ > + return sev_do_cmd(SEV_CMD_SNP_DBG_DECRYPT, data, error); > +} > +EXPORT_SYMBOL_GPL(snp_guest_dbg_decrypt); So this mindless repetition is getting annoying. I see ~70 SEV commands. Adding ~70 functions which parrot all the same call to sev_do_cmd() is just insane. I think you should simply export sev_do_cmd() and call it instead. Yes, when it turns out that a command and the preparation to issue it before it starts repeating pretty often, you could do a helper. But adding those silly wrappers doesn't bring anything besides confusion and code bloat. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette