From: Stefan Berger <stefanb@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, Stefan Berger <stefanb@linux.vnet.ibm.com>
Subject: [Qemu-devel] [PULL v1 29/32] tpm: pull tpm_util_request() out of tpm_util_test()
Date: Sat, 16 Dec 2017 12:41:46 -0500 [thread overview]
Message-ID: <1513446109-9013-30-git-send-email-stefanb@linux.vnet.ibm.com> (raw)
In-Reply-To: <1513446109-9013-1-git-send-email-stefanb@linux.vnet.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
hw/tpm/tpm_util.c | 40 +++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
diff --git a/hw/tpm/tpm_util.c b/hw/tpm/tpm_util.c
index daf1faa..b852f53 100644
--- a/hw/tpm/tpm_util.c
+++ b/hw/tpm/tpm_util.c
@@ -50,13 +50,13 @@ bool tpm_util_is_selftest(const uint8_t *in, uint32_t in_len)
}
/*
- * A basic test of a TPM device. We expect a well formatted response header
- * (error response is fine) within one second.
+ * Send request to a TPM device. We expect a response within one second.
*/
-static int tpm_util_test(int fd,
- unsigned char *request,
- size_t requestlen,
- uint16_t *return_tag)
+static int tpm_util_request(int fd,
+ unsigned char *request,
+ size_t requestlen,
+ unsigned char *response,
+ size_t responselen)
{
struct tpm_resp_hdr *resp;
fd_set readfds;
@@ -65,7 +65,6 @@ static int tpm_util_test(int fd,
.tv_sec = 1,
.tv_usec = 0,
};
- unsigned char buf[1024];
n = write(fd, request, requestlen);
if (n < 0) {
@@ -84,17 +83,40 @@ static int tpm_util_test(int fd,
return -errno;
}
- n = read(fd, &buf, sizeof(buf));
+ n = read(fd, response, responselen);
if (n < sizeof(struct tpm_resp_hdr)) {
return -EFAULT;
}
- resp = (struct tpm_resp_hdr *)buf;
+ resp = (struct tpm_resp_hdr *)response;
/* check the header */
if (be32_to_cpu(resp->len) != n) {
return -EMSGSIZE;
}
+ return 0;
+}
+
+/*
+ * A basic test of a TPM device. We expect a well formatted response header
+ * (error response is fine).
+ */
+static int tpm_util_test(int fd,
+ unsigned char *request,
+ size_t requestlen,
+ uint16_t *return_tag)
+{
+ struct tpm_resp_hdr *resp;
+ unsigned char buf[1024];
+ ssize_t ret;
+
+ ret = tpm_util_request(fd, request, requestlen,
+ buf, sizeof(buf));
+ if (ret < 0) {
+ return ret;
+ }
+
+ resp = (struct tpm_resp_hdr *)buf;
*return_tag = be16_to_cpu(resp->tag);
return 0;
--
2.5.5
next prev parent reply other threads:[~2017-12-16 17:42 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-16 17:41 [Qemu-devel] [PULL v1 00/32] Merge tpm 2017/12/15 Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 01/32] tpm-tis: remove unused locty_number Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 02/32] tpm: move TpmIf in include/sysemu/tpm.h Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 03/32] tpm-backend: store TPMIf interface, improve backend_init() Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 04/32] tpm-tis: no longer expose TPMState Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 05/32] tpm-be: call request_completed() out of thread Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 06/32] tpm-be: report error instead of front-end Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 07/32] tpm-be: ask model to the TPM interface Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 08/32] tpm: remove unused opened code Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 09/32] tpm-passthrough: don't save guessed cancel_path in options Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 10/32] tpm-be: update optional function pointers Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 11/32] tpm-passthrough: pass TPMPassthruState to handle_device_opts Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 12/32] tpm-backend: move set 'id' to common code Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 13/32] tpm-passthrough: make it safer to destroy after creation Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 14/32] tpm-passthrough: simplify create() Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 15/32] tpm-passthrough: workaround a possible race Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 16/32] tpm-tis: simplify header inclusion Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 17/32] tpm: rename qemu_find_tpm() -> qemu_find_tpm_be() Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 18/32] tpm: lookup the the TPM interface instead of TIS device Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 19/32] tpm: add TPM interface to lookup TPM version Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 20/32] tpm: add tpm_cmd_get_size() to tpm_util Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 21/32] acpi: change TPM TIS data conditions Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 22/32] tpm-emulator: add a FIXME comment about blocking cancel Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 23/32] tpm-tis: remove redundant 'tpm_tis:' in error messages Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 24/32] tpm-tis: check that at most one TPM device exists Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 25/32] qdev: add DEFINE_PROP_TPMBE Stefan Berger
2017-12-18 15:10 ` Laurent Vivier
2017-12-18 15:30 ` Cornelia Huck
2017-12-18 15:44 ` Laurent Vivier
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 26/32] tpm-tis: use DEFINE_PROP_TPMBE Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 27/32] tpm: remove tpm_register_model() Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 28/32] tpm: Move getting TPM buffer size to backends Stefan Berger
2017-12-16 17:41 ` Stefan Berger [this message]
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 30/32] tpm: tpm_passthrough: Read the buffer size from the host device Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 31/32] tpm: tpm_emulator: get and set buffer size of device Stefan Berger
2017-12-16 17:41 ` [Qemu-devel] [PULL v1 32/32] tpm: tpm_passthrough: Fail startup if FE buffer size < BE buffer size Stefan Berger
2017-12-17 21:34 ` [Qemu-devel] [PULL v1 00/32] Merge tpm 2017/12/15 Peter Maydell
2017-12-18 11:18 ` Thomas Huth
2017-12-18 11:50 ` Thomas Huth
2017-12-18 12:33 ` Peter Maydell
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=1513446109-9013-30-git-send-email-stefanb@linux.vnet.ibm.com \
--to=stefanb@linux.vnet.ibm.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).