mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-07 23:11:27 +00:00
x86/sev-es: Move sev_es_put_ghcb() in prep for follow on patch
Move the location of sev_es_put_ghcb() in preparation for an update to it
in a follow-on patch. This will better highlight the changes being made
to the function.
No functional change.
Fixes: 0786138c78
("x86/sev-es: Add a Runtime #VC Exception Handler")
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/8c07662ec17d3d82e5c53841a1d9e766d3bdbab6.1621273353.git.thomas.lendacky@amd.com
This commit is contained in:
parent
d07f6ca923
commit
fea63d54f7
1 changed files with 18 additions and 18 deletions
|
@ -221,24 +221,6 @@ static __always_inline struct ghcb *sev_es_get_ghcb(struct ghcb_state *state)
|
||||||
return ghcb;
|
return ghcb;
|
||||||
}
|
}
|
||||||
|
|
||||||
static __always_inline void sev_es_put_ghcb(struct ghcb_state *state)
|
|
||||||
{
|
|
||||||
struct sev_es_runtime_data *data;
|
|
||||||
struct ghcb *ghcb;
|
|
||||||
|
|
||||||
data = this_cpu_read(runtime_data);
|
|
||||||
ghcb = &data->ghcb_page;
|
|
||||||
|
|
||||||
if (state->ghcb) {
|
|
||||||
/* Restore GHCB from Backup */
|
|
||||||
*ghcb = *state->ghcb;
|
|
||||||
data->backup_ghcb_active = false;
|
|
||||||
state->ghcb = NULL;
|
|
||||||
} else {
|
|
||||||
data->ghcb_active = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Needed in vc_early_forward_exception */
|
/* Needed in vc_early_forward_exception */
|
||||||
void do_early_exception(struct pt_regs *regs, int trapnr);
|
void do_early_exception(struct pt_regs *regs, int trapnr);
|
||||||
|
|
||||||
|
@ -461,6 +443,24 @@ static enum es_result vc_slow_virt_to_phys(struct ghcb *ghcb, struct es_em_ctxt
|
||||||
/* Include code shared with pre-decompression boot stage */
|
/* Include code shared with pre-decompression boot stage */
|
||||||
#include "sev-shared.c"
|
#include "sev-shared.c"
|
||||||
|
|
||||||
|
static __always_inline void sev_es_put_ghcb(struct ghcb_state *state)
|
||||||
|
{
|
||||||
|
struct sev_es_runtime_data *data;
|
||||||
|
struct ghcb *ghcb;
|
||||||
|
|
||||||
|
data = this_cpu_read(runtime_data);
|
||||||
|
ghcb = &data->ghcb_page;
|
||||||
|
|
||||||
|
if (state->ghcb) {
|
||||||
|
/* Restore GHCB from Backup */
|
||||||
|
*ghcb = *state->ghcb;
|
||||||
|
data->backup_ghcb_active = false;
|
||||||
|
state->ghcb = NULL;
|
||||||
|
} else {
|
||||||
|
data->ghcb_active = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void noinstr __sev_es_nmi_complete(void)
|
void noinstr __sev_es_nmi_complete(void)
|
||||||
{
|
{
|
||||||
struct ghcb_state state;
|
struct ghcb_state state;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue