tcg: Fix returned type in alloc_code_gen_buffer_splitwx_memfd()
authorShaobo Song <shnusongshaobo@gmail.com>
Fri, 24 Jun 2022 15:02:17 +0000 (23:02 +0800)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 12 Jul 2022 05:00:10 +0000 (10:30 +0530)
This fixes a bug in POSIX-compliant environments. Since we had allocated
a buffer named 'tcg-jit' with read-write access protections we need a int
type to combine these access flags and return it, whereas we had inexplicably
return a bool type. It may cause an unnecessary protection change in
tcg_region_init().

Cc: qemu-stable@nongnu.org
Fixes: 7be9ebcf924c ("tcg: Return the map protection from alloc_code_gen_buffer")
Signed-off-by: Shaobo Song <shnusongshaobo@gmail.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20220624150216.3627-1-shnusongshaobo@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/region.c

index 71ea81d6713f2fc33d3b375414399720e3e70d40..88d6bb273f18fbbbc645bcd6358e1dc9aceca828 100644 (file)
@@ -548,7 +548,7 @@ static int alloc_code_gen_buffer_anon(size_t size, int prot,
 #ifdef CONFIG_POSIX
 #include "qemu/memfd.h"
 
-static bool alloc_code_gen_buffer_splitwx_memfd(size_t size, Error **errp)
+static int alloc_code_gen_buffer_splitwx_memfd(size_t size, Error **errp)
 {
     void *buf_rw = NULL, *buf_rx = MAP_FAILED;
     int fd = -1;