[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 14/28] tpm-passthrough: simplify create()
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH v2 14/28] tpm-passthrough: simplify create() |
Date: |
Mon, 6 Nov 2017 19:39:11 +0100 |
Use a similar code as tpm_emulator_create(), call handle_opts() and
handle failure cleanup with object_unref() in create().
Signed-off-by: Marc-André Lureau <address@hidden>
---
hw/tpm/tpm_passthrough.c | 36 ++++++++++--------------------------
1 file changed, 10 insertions(+), 26 deletions(-)
diff --git a/hw/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
index aa9167e3c6..788be3847d 100644
--- a/hw/tpm/tpm_passthrough.c
+++ b/hw/tpm/tpm_passthrough.c
@@ -261,49 +261,33 @@ tpm_passthrough_handle_device_opts(TPMPassthruState
*tpm_pt, QemuOpts *opts)
if (tpm_pt->tpm_fd < 0) {
error_report("Cannot access TPM device using '%s': %s",
tpm_pt->tpm_dev, strerror(errno));
- goto err_free_parameters;
+ return -1;
}
if (tpm_util_test_tpmdev(tpm_pt->tpm_fd, &tpm_pt->tpm_version)) {
error_report("'%s' is not a TPM device.",
tpm_pt->tpm_dev);
- goto err_close_tpmdev;
+ return -1;
}
- return 0;
-
- err_close_tpmdev:
- qemu_close(tpm_pt->tpm_fd);
- tpm_pt->tpm_fd = -1;
-
- err_free_parameters:
- qapi_free_TPMPassthroughOptions(tpm_pt->options);
- tpm_pt->options = NULL;
- tpm_pt->tpm_dev = NULL;
+ tpm_pt->cancel_fd = tpm_passthrough_open_sysfs_cancel(tpm_pt);
+ if (tpm_pt->cancel_fd < 0) {
+ return -1;
+ }
- return 1;
+ return 0;
}
static TPMBackend *tpm_passthrough_create(QemuOpts *opts)
{
Object *obj = object_new(TYPE_TPM_PASSTHROUGH);
- TPMPassthruState *tpm_pt = TPM_PASSTHROUGH(obj);
- if (tpm_passthrough_handle_device_opts(tpm_pt, opts)) {
- goto err_exit;
- }
-
- tpm_pt->cancel_fd = tpm_passthrough_open_sysfs_cancel(tpm_pt);
- if (tpm_pt->cancel_fd < 0) {
- goto err_exit;
+ if (tpm_passthrough_handle_device_opts(TPM_PASSTHROUGH(obj), opts)) {
+ object_unref(obj);
+ return NULL;
}
return TPM_BACKEND(obj);
-
-err_exit:
- object_unref(obj);
-
- return NULL;
}
static TpmTypeOptions *tpm_passthrough_get_tpm_options(TPMBackend *tb)
--
2.15.0.rc0.40.gaefcc5f6f
- [Qemu-devel] [PATCH v2 06/28] tpm-be: report error instead of front-end, (continued)
- [Qemu-devel] [PATCH v2 06/28] tpm-be: report error instead of front-end, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 05/28] tpm-be: call request_completed() out of thread, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 07/28] tpm-be: ask model to the TPM interface, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 08/28] tpm: remove unused opened code, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 09/28] tpm-passthrough: don't save guessed cancel_path in options, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 11/28] tpm-passthrough: pass TPMPassthruState to handle_device_opts, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 12/28] tpm-backend: move set 'id' to common code, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 10/28] tpm-be: update optional function pointers, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 13/28] tpm-passthrough: make it safer to destroy after creation, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 14/28] tpm-passthrough: simplify create(),
Marc-André Lureau <=
- [Qemu-devel] [PATCH v2 15/28] tpm-passthrough: workaround a possible race, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 16/28] tpm-tis: simplify header inclusion, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 17/28] tpm: rename qemu_find_tpm() -> qemu_find_tpm_be(), Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 18/28] tpm: lookup the the TPM interface instead of TIS device, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 19/28] tpm: add TPM interface to lookup TPM version, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 20/28] tpm: add tpm_cmd_get_size() to tpm_util, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 21/28] acpi: change TPM TIS data conditions, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 22/28] tpm-emulator: add a FIXME comment about blocking cancel, Marc-André Lureau, 2017/11/06
- [Qemu-devel] [PATCH v2 23/28] tpm-tis: remove redundant 'tpm_tis:' in error messages, Marc-André Lureau, 2017/11/06