|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 8/9] vtpmmgr: Shutdown more gracefully
Jason Andryuk, le mar. 04 mai 2021 08:48:41 -0400, a ecrit:
> vtpmmgr uses the default, weak app_shutdown, which immediately calls the
> shutdown hypercall. This short circuits the vtpmmgr clean up logic. We
> need to perform the clean up to actually Flush our key out of the tpm.
>
> Setting do_shutdown is one step in that direction, but vtpmmgr will most
> likely be waiting in tpmback_req_any. We need to call shutdown_tpmback
> to cancel the wait inside tpmback and perform the shutdown.
>
> Signed-off-by: Jason Andryuk <jandryuk@xxxxxxxxx>
Reviewed-by: Samuel Thibault <samuel.thibaut@xxxxxxxxxxxx>
> ---
> stubdom/vtpmmgr/vtpmmgr.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/stubdom/vtpmmgr/vtpmmgr.c b/stubdom/vtpmmgr/vtpmmgr.c
> index 9fddaa24f8..46ea018921 100644
> --- a/stubdom/vtpmmgr/vtpmmgr.c
> +++ b/stubdom/vtpmmgr/vtpmmgr.c
> @@ -67,11 +67,21 @@ int hw_is_tpm2(void)
> return (hardware_version.hw_version == TPM2_HARDWARE) ? 1 : 0;
> }
>
> +static int do_shutdown;
> +
> +void app_shutdown(unsigned int reason)
> +{
> + printk("Shutdown requested: %d\n", reason);
> + do_shutdown = 1;
> +
> + shutdown_tpmback();
> +}
> +
> void main_loop(void) {
> tpmcmd_t* tpmcmd;
> uint8_t respbuf[TCPA_MAX_BUFFER_LENGTH];
>
> - while(1) {
> + while (!do_shutdown) {
> /* Wait for requests from a vtpm */
> vtpmloginfo(VTPM_LOG_VTPM, "Waiting for commands from vTPM's:\n");
> if((tpmcmd = tpmback_req_any()) == NULL) {
> --
> 2.30.2
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |