mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
ccp: Make snp_reclaim_pages and __sev_do_cmd_locked public
The snp_reclaim_pages() helper reclaims pages in the FW state. SEV-TIO and the TMPM driver (a hardware engine which smashes IOMMU PDEs among other things) will use to reclaim memory when cleaning up. Share and export snp_reclaim_pages(). Most of the SEV-TIO code uses sev_do_cmd() which locks the sev_cmd_mutex and already exported. But the SNP init code (which also sets up SEV-TIO) executes under the sev_cmd_mutex lock so the SEV-TIO code has to use the __sev_do_cmd_locked() helper. This one though does not need to be exported/shared globally as SEV-TIO is a part of the CCP driver still. Share __sev_do_cmd_locked() via the CCP internal header. Signed-off-by: Alexey Kardashevskiy <aik@amd.com> Link: https://patch.msgid.link/20251202024449.542361-2-aik@amd.com Acked-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
committed by
Dan Williams
parent
f7ae6d4ec6
commit
8a5dd102e4
@@ -387,13 +387,7 @@ static int sev_write_init_ex_file_if_required(int cmd_id)
|
||||
return sev_write_init_ex_file();
|
||||
}
|
||||
|
||||
/*
|
||||
* snp_reclaim_pages() needs __sev_do_cmd_locked(), and __sev_do_cmd_locked()
|
||||
* needs snp_reclaim_pages(), so a forward declaration is needed.
|
||||
*/
|
||||
static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret);
|
||||
|
||||
static int snp_reclaim_pages(unsigned long paddr, unsigned int npages, bool locked)
|
||||
int snp_reclaim_pages(unsigned long paddr, unsigned int npages, bool locked)
|
||||
{
|
||||
int ret, err, i;
|
||||
|
||||
@@ -427,6 +421,7 @@ cleanup:
|
||||
snp_leak_pages(__phys_to_pfn(paddr), npages - i);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snp_reclaim_pages);
|
||||
|
||||
static int rmp_mark_pages_firmware(unsigned long paddr, unsigned int npages, bool locked)
|
||||
{
|
||||
@@ -857,7 +852,7 @@ static int snp_reclaim_cmd_buf(int cmd, void *cmd_buf)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret)
|
||||
int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret)
|
||||
{
|
||||
struct cmd_buf_desc desc_list[CMD_BUF_DESC_MAX] = {0};
|
||||
struct psp_device *psp = psp_master;
|
||||
|
||||
Reference in New Issue
Block a user