Message ID | 20211203214502.3545842-1-pgonda@google.com |
---|---|
State | Superseded |
Headers | show |
Series | None | expand |
On Fri, Dec 03, 2021 at 09:45:02PM +0000, Peter Gonda wrote: > Create a helper function sev_fw_alloc() which can be used to allocate > aligned memory regions for use by the PSP firmware. Currently only used > for the SEV-ES TMR region but will be used for the SEV_INIT_EX NV memory > region. > > Signed-off-by: Peter Gonda <pgonda@google.com> > Reviewed-by: Marc Orr <marcorr@google.com> > Acked-by: David Rientjes <rientjes@google.com> > Cc: Tom Lendacky <thomas.lendacky@amd.com> > Cc: Brijesh Singh <brijesh.singh@amd.com> > Cc: Marc Orr <marcorr@google.com> > Cc: Joerg Roedel <jroedel@suse.de> > Cc: Herbert Xu <herbert@gondor.apana.org.au> > Cc: David Rientjes <rientjes@google.com> > Cc: John Allen <john.allen@amd.com> > Cc: "David S. Miller" <davem@davemloft.net> > Cc: Paolo Bonzini <pbonzini@redhat.com> > Cc: linux-crypto@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > --- > > Mistakenly send old patch, this is the fixed version. > > --- > drivers/crypto/ccp/sev-dev.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) Please resubmit the whole series. Otherwise automatic testing won't pick this up. Thanks,
diff --git a/drivers/crypto/ccp/sev-dev.c b/drivers/crypto/ccp/sev-dev.c index ef7e8b4c6e02..8ea362ac014f 100644 --- a/drivers/crypto/ccp/sev-dev.c +++ b/drivers/crypto/ccp/sev-dev.c @@ -141,6 +141,17 @@ static int sev_cmd_buffer_len(int cmd) return 0; } +static void *sev_fw_alloc(unsigned long len) +{ + struct page *page; + + page = alloc_pages(GFP_KERNEL, get_order(len)); + if (!page) + return NULL; + + return page_address(page); +} + static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret) { struct psp_device *psp = psp_master; @@ -1078,7 +1089,6 @@ EXPORT_SYMBOL_GPL(sev_issue_cmd_external_user); void sev_pci_init(void) { struct sev_device *sev = psp_master->sev_data; - struct page *tmr_page; int error, rc; if (!sev) @@ -1094,14 +1104,10 @@ void sev_pci_init(void) sev_get_api_version(); /* Obtain the TMR memory area for SEV-ES use */ - tmr_page = alloc_pages(GFP_KERNEL, get_order(SEV_ES_TMR_SIZE)); - if (tmr_page) { - sev_es_tmr = page_address(tmr_page); - } else { - sev_es_tmr = NULL; + sev_es_tmr = sev_fw_alloc(SEV_ES_TMR_SIZE); + if (!sev_es_tmr) dev_warn(sev->dev, "SEV: TMR allocation failed, SEV-ES support unavailable\n"); - } /* Initialize the platform */ rc = sev_platform_init(&error);