From: Jason Andryuk <jandryuk@gmail.com> To: xen-devel@lists.xenproject.org Cc: Jason Andryuk <jandryuk@gmail.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>, Quan Xu <quan.xu0@gmail.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, Samuel Thibault <samuel.thibaut@ens-lyon.org> Subject: [PATCH v2 08/13] vtpmmgr: Shutdown more gracefully Date: Thu, 6 May 2021 09:59:18 -0400 [thread overview] Message-ID: <20210506135923.161427-9-jandryuk@gmail.com> (raw) In-Reply-To: <20210506135923.161427-1-jandryuk@gmail.com> 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@gmail.com> Reviewed-by: Samuel Thibault <samuel.thibaut@ens-lyon.org> --- 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
next prev parent reply other threads:[~2021-05-06 14:00 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-06 13:59 [PATCH v2 00/13] vtpmmgr: Some fixes - still incomplete Jason Andryuk 2021-05-06 13:59 ` [PATCH v2 01/13] docs: Warn about incomplete vtpmmgr TPM 2.0 support Jason Andryuk 2021-05-06 13:59 ` [PATCH v2 02/13] vtpmmgr: Print error code to aid debugging Jason Andryuk 2021-05-06 13:59 ` [PATCH v2 03/13] stubom: newlib: Enable C99 formats for %z Jason Andryuk 2021-05-06 13:59 ` [PATCH v2 04/13] vtpmmgr: Allow specifying srk_handle for TPM2 Jason Andryuk 2021-05-06 21:35 ` Samuel Thibault 2021-05-10 11:56 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 05/13] vtpmmgr: Move vtpmmgr_shutdown Jason Andryuk 2021-05-07 15:48 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 06/13] vtpmmgr: Flush transient keys on shutdown Jason Andryuk 2021-05-10 12:12 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 07/13] vtpmmgr: Flush all transient keys Jason Andryuk 2021-05-10 12:19 ` Daniel P. Smith 2021-05-06 13:59 ` Jason Andryuk [this message] 2021-05-06 14:04 ` [PATCH v2 08/13] vtpmmgr: Shutdown more gracefully Jason Andryuk 2021-05-10 12:42 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 09/13] vtpmmgr: Support GetRandom passthrough on TPM 2.0 Jason Andryuk 2021-05-06 21:40 ` Samuel Thibault 2021-05-10 12:51 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 10/13] vtpmmgr: Remove bogus cast from TPM2_GetRandom Jason Andryuk 2021-05-06 21:41 ` Samuel Thibault 2021-05-10 13:03 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 11/13] vtpmmgr: Fix owner_auth & srk_auth parsing Jason Andryuk 2021-05-06 21:41 ` Samuel Thibault 2021-05-10 13:18 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 12/13] vtpmmgr: Check req_len before unpacking command Jason Andryuk 2021-05-06 21:42 ` Samuel Thibault 2021-05-10 13:32 ` Daniel P. Smith 2021-05-06 13:59 ` [PATCH v2 13/13] vtpm: Correct timeout units and command duration Jason Andryuk 2021-05-06 21:52 ` Samuel Thibault 2021-05-10 13:40 ` Daniel P. Smith
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210506135923.161427-9-jandryuk@gmail.com \ --to=jandryuk@gmail.com \ --cc=dgdegra@tycho.nsa.gov \ --cc=quan.xu0@gmail.com \ --cc=samuel.thibault@ens-lyon.org \ --cc=samuel.thibaut@ens-lyon.org \ --cc=xen-devel@lists.xenproject.org \ --subject='Re: [PATCH v2 08/13] vtpmmgr: Shutdown more gracefully' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).