[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/16] backends/tpm: Replace qemu_mutex_lock calls with QEMU_LOCK_
From: |
Laurent Vivier |
Subject: |
[PULL 01/16] backends/tpm: Replace qemu_mutex_lock calls with QEMU_LOCK_GUARD |
Date: |
Sat, 15 May 2021 12:03:20 +0200 |
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Simplify the tpm_emulator_ctrlcmd() handler by replacing a pair of
qemu_mutex_lock/qemu_mutex_unlock calls by the WITH_QEMU_LOCK_GUARD
macro.
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Christophe de Dinechin <dinechin@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210512070713.3286188-1-philmd@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
backends/tpm/tpm_emulator.c | 34 +++++++++++++++-------------------
1 file changed, 15 insertions(+), 19 deletions(-)
diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c
index a012adc19341..e5f1063ab6c3 100644
--- a/backends/tpm/tpm_emulator.c
+++ b/backends/tpm/tpm_emulator.c
@@ -30,6 +30,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "qemu/sockets.h"
+#include "qemu/lockable.h"
#include "io/channel-socket.h"
#include "sysemu/tpm_backend.h"
#include "sysemu/tpm_util.h"
@@ -124,31 +125,26 @@ static int tpm_emulator_ctrlcmd(TPMEmulator *tpm,
unsigned long cmd, void *msg,
uint32_t cmd_no = cpu_to_be32(cmd);
ssize_t n = sizeof(uint32_t) + msg_len_in;
uint8_t *buf = NULL;
- int ret = -1;
- qemu_mutex_lock(&tpm->mutex);
+ WITH_QEMU_LOCK_GUARD(&tpm->mutex) {
+ buf = g_alloca(n);
+ memcpy(buf, &cmd_no, sizeof(cmd_no));
+ memcpy(buf + sizeof(cmd_no), msg, msg_len_in);
- buf = g_alloca(n);
- memcpy(buf, &cmd_no, sizeof(cmd_no));
- memcpy(buf + sizeof(cmd_no), msg, msg_len_in);
-
- n = qemu_chr_fe_write_all(dev, buf, n);
- if (n <= 0) {
- goto end;
- }
-
- if (msg_len_out != 0) {
- n = qemu_chr_fe_read_all(dev, msg, msg_len_out);
+ n = qemu_chr_fe_write_all(dev, buf, n);
if (n <= 0) {
- goto end;
+ return -1;
}
- }
- ret = 0;
+ if (msg_len_out != 0) {
+ n = qemu_chr_fe_read_all(dev, msg, msg_len_out);
+ if (n <= 0) {
+ return -1;
+ }
+ }
+ }
-end:
- qemu_mutex_unlock(&tpm->mutex);
- return ret;
+ return 0;
}
static int tpm_emulator_unix_tx_bufs(TPMEmulator *tpm_emu,
--
2.31.1
- [PULL 00/16] Trivial branch for 6.1 patches, Laurent Vivier, 2021/05/15
- [PULL 06/16] qapi: spelling fix (addtional), Laurent Vivier, 2021/05/15
- [PULL 02/16] hw/virtio: Pass virtio_feature_get_config_size() a const argument, Laurent Vivier, 2021/05/15
- [PULL 01/16] backends/tpm: Replace qemu_mutex_lock calls with QEMU_LOCK_GUARD,
Laurent Vivier <=
- [PULL 03/16] virtio-blk: Constify VirtIOFeature feature_sizes[], Laurent Vivier, 2021/05/15
- [PULL 04/16] virtio-net: Constify VirtIOFeature feature_sizes[], Laurent Vivier, 2021/05/15
- [PULL 05/16] virtiofsd: Fix check of chown()'s return value, Laurent Vivier, 2021/05/15
- [PULL 10/16] cutils: fix memory leak in get_relocated_path(), Laurent Vivier, 2021/05/15
- [PULL 07/16] hw/gpio/aspeed: spelling fix (addtional), Laurent Vivier, 2021/05/15
- [PULL 11/16] hw/mem/meson: Fix linking sparse-mem device with fuzzer, Laurent Vivier, 2021/05/15
- [PULL 14/16] target/sh4: Return error if CPUClass::get_phys_page_debug() fails, Laurent Vivier, 2021/05/15
- [PULL 16/16] target/avr: Ignore unimplemented WDR opcode, Laurent Vivier, 2021/05/15
- [PULL 08/16] hw/timer/etraxfs_timer: Convert to 3-phase reset (Resettable interface), Laurent Vivier, 2021/05/15
- [PULL 09/16] hw/rtc/mc146818rtc: Convert to 3-phase reset (Resettable interface), Laurent Vivier, 2021/05/15