tcg: Make the cleanup-on-error path unique

By calling `error_setg_errno()` before jumping to the cleanup-on-error
path at the `fail` label, the cleanup path is clearer.

Signed-off-by: Samuel Tardieu <sam@rfc1149.net>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20231219182212.455952-3-sam@rfc1149.net>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Samuel Tardieu 2023-12-19 19:22:12 +01:00 committed by Richard Henderson
parent 0e5e6219ed
commit 8f8419d325

View File

@ -584,7 +584,9 @@ static int alloc_code_gen_buffer_splitwx_memfd(size_t size, Error **errp)
buf_rx = mmap(NULL, size, host_prot_read_exec(), MAP_SHARED, fd, 0); buf_rx = mmap(NULL, size, host_prot_read_exec(), MAP_SHARED, fd, 0);
if (buf_rx == MAP_FAILED) { if (buf_rx == MAP_FAILED) {
goto fail_rx; error_setg_errno(errp, errno,
"failed to map shared memory for execute");
goto fail;
} }
close(fd); close(fd);
@ -594,8 +596,6 @@ static int alloc_code_gen_buffer_splitwx_memfd(size_t size, Error **errp)
return PROT_READ | PROT_WRITE; return PROT_READ | PROT_WRITE;
fail_rx:
error_setg_errno(errp, errno, "failed to map shared memory for execute");
fail: fail:
/* buf_rx is always equal to MAP_FAILED here and does not require cleanup */ /* buf_rx is always equal to MAP_FAILED here and does not require cleanup */
if (buf_rw) { if (buf_rw) {