#include "tcg/tcg.h"
#if defined(CONFIG_USER_ONLY)
#include "qemu.h"
+#if defined(TARGET_X86_64)
+#include "vsyscall.h"
+#endif
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
#include <sys/param.h>
#if __FreeBSD_version >= 700104
ROUND_UP((uintptr_t)gen_code_buf + gen_code_size + search_size,
CODE_GEN_ALIGN));
+#if defined(CONFIG_USER_ONLY) && defined(TARGET_X86_64)
+ /* if we are doing vsyscall don't link the page as it lies in high memory
+ and tb_alloc_page will abort due to page_l1_map returning NULL */
+ if (unlikely(phys_pc >= TARGET_VSYSCALL_START
+ && phys_pc < TARGET_VSYSCALL_END))
+ return tb;
+#endif
+
/* init jump list */
qemu_spin_init(&tb->jmp_lock);
tb->jmp_list_head = (uintptr_t)NULL;
g_debug("FENCE %" PRIu64, cmd->cmd_hdr.fence_id);
vg_ctrl_response_nodata(g, cmd, VIRTIO_GPU_RESP_OK_NODATA);
QTAILQ_REMOVE(&g->fenceq, cmd, next);
- free(cmd);
+ g_free(cmd);
g->inflight--;
}
}