diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-04-17 11:29:49 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2022-04-20 10:51:11 -0700 |
commit | 78b548583e0725bb7054162a31dac552b01c02a8 (patch) | |
tree | e8e56b975713665391fddd1534e8642ed000c29f /net | |
parent | 6fef222971e1f77d1e7b6c218edce72ceb568126 (diff) |
*: Use fprintf between qemu_log_trylock/unlock
Inside qemu_log, we perform qemu_log_trylock/unlock, which need
not be done if we have already performed the lock beforehand.
Always check the result of qemu_log_trylock -- only checking
qemu_loglevel_mask races with the acquisition of the lock on
the logfile.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220417183019.755276-10-richard.henderson@linaro.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/can/can_socketcan.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/net/can/can_socketcan.c b/net/can/can_socketcan.c index 4a505643e9..a6388563c3 100644 --- a/net/can/can_socketcan.c +++ b/net/can/can_socketcan.c @@ -77,18 +77,21 @@ static void can_host_socketcan_display_msg(struct qemu_can_frame *msg) { int i; FILE *logfile = qemu_log_trylock(); - qemu_log("[cansocketcan]: %03X [%01d] %s %s", - msg->can_id & QEMU_CAN_EFF_MASK, - msg->can_dlc, - msg->can_id & QEMU_CAN_EFF_FLAG ? "EFF" : "SFF", - msg->can_id & QEMU_CAN_RTR_FLAG ? "RTR" : "DAT"); - - for (i = 0; i < msg->can_dlc; i++) { - qemu_log(" %02X", msg->data[i]); + + if (logfile) { + fprintf(logfile, "[cansocketcan]: %03X [%01d] %s %s", + msg->can_id & QEMU_CAN_EFF_MASK, + msg->can_dlc, + msg->can_id & QEMU_CAN_EFF_FLAG ? "EFF" : "SFF", + msg->can_id & QEMU_CAN_RTR_FLAG ? "RTR" : "DAT"); + + for (i = 0; i < msg->can_dlc; i++) { + fprintf(logfile, " %02X", msg->data[i]); + } + fprintf(logfile, "\n"); + qemu_log_flush(); + qemu_log_unlock(logfile); } - qemu_log("\n"); - qemu_log_flush(); - qemu_log_unlock(logfile); } static void can_host_socketcan_read(void *opaque) |