7f46c79c5d
- Update to v6.1: see https://wiki.qemu.org/ChangeLog/6.1 For a full list of formely deprecated features that are removed, consult: https://qemu-project.gitlab.io/qemu/about/removed-features.html For a list of new deprecated features, consult: https://qemu-project.gitlab.io/qemu/about/deprecated.html Some noteworthy changes: * Removed moxie CPU. * Removed lm32 CPU. * Removed unicore32 CPU. * Removed 'info cpustats'. * Added Aspeed machines: rainier-bmc, quanta-q7l1-bmc. * Added npcm7xx machine: quanta-gbs-bmc. * Model for Aspeed's Hash and Crypto Engine. * SVE2 is now emulated, including bfloat16 support * FEAT_I8MM, FEAT_TLBIOS, FEAT_TLBRANGE, FEAT_BF16, FEAT_AA32BF16, and FEAT_MTE3 are now emulated. * Improved hot-unplug failures on PowerPC pseries machine. * Implemented some POWER10 instructions in TCG. * Added shakti_c RISC-V machine. * Improved documentation for RISC-V machines. * CPU models for gen16 have been added for s390x. * New CPU model versions added with XSAVES enabled: Skylake-Client-v4, Skylake-Server-v5, Cascadelake-Server-v5, Cooperlake-v2, Icelake-Client-v3, Icelake-Server-v5, Denverton-v3, Snowridge-v3, Dhyana-v2 * Added ACPI based PCI hotplug support to Q35 machine. Enabled and used by default since pc-q35-6.1 machine type. * Added support for the pca9546 and pca9548 I2C muxes. * Added support for PMBus and several PMBus devices. * Crypto subsystem: The preferred crypto backend driver now gnutls, with libgcrypt as the second choice, and nettle as third choice, with ordering driven mostly by performance of the ciphers. * Misc doc improvements. * Patches removed: block-nvme-Fix-VFIO_MAP_DMA-failed-No-sp.patch hmp-Fix-loadvm-to-resume-the-VM-on-succe.patch hw-block-nvme-align-with-existing-style.patch hw-block-nvme-consider-metadata-read-aio.patch hw-net-can-sja1000-fix-buff2frame_bas-an.patch hw-nvme-fix-missing-check-for-PMR-capabi.patch hw-nvme-fix-pin-based-interrupt-behavior.patch hw-pci-host-q35-Ignore-write-of-reserved.patch hw-rdma-Fix-possible-mremap-overflow-in-.patch hw-rx-rx-gdbsim-Do-not-accept-invalid-me.patch hw-usb-Do-not-build-USB-subsystem-if-not.patch hw-usb-host-stub-Remove-unused-header.patch linux-user-aarch64-Enable-hwcap-for-RND-.patch module-for-virtio-gpu-pre-load-module-to.patch monitor-qmp-fix-race-on-CHR_EVENT_CLOSED.patch pvrdma-Ensure-correct-input-on-ring-init.patch pvrdma-Fix-the-ring-init-error-flow-CVE-.patch qemu-config-load-modules-when-instantiat.patch qemu-config-parse-configuration-files-to.patch qemu-config-use-qemu_opts_from_qdict.patch runstate-Initialize-Error-to-NULL.patch sockets-update-SOCKET_ADDRESS_TYPE_FD-li.patch target-i386-Exit-tb-after-wrmsr.patch target-sh4-Return-error-if-CPUClass-get_.patch tcg-Allocate-sufficient-storage-in-temp_.patch tcg-arm-Fix-tcg_out_op-function-signatur.patch tcg-sparc-Fix-temp_allocate_frame-vs-spa.patch ui-Fix-memory-leak-in-qemu_xkeymap_mappi.patch usb-hid-avoid-dynamic-stack-allocation.patch usb-limit-combined-packets-to-1-MiB-CVE-.patch usb-mtp-avoid-dynamic-stack-allocation.patch usb-redir-avoid-dynamic-stack-allocation.patch usbredir-fix-free-call.patch vfio-ccw-Permit-missing-IRQs.patch vhost-user-blk-Check-that-num-queues-is-.patch vhost-user-blk-Don-t-reconnect-during-in.patch vhost-user-blk-Fail-gracefully-on-too-la.patch vhost-user-blk-Get-more-feature-flags-fr.patch vhost-user-blk-Make-sure-to-set-Error-on.patch vhost-user-gpu-abstract-vg_cleanup_mappi.patch vhost-user-gpu-fix-leak-in-virgl_cmd_res.patch vhost-user-gpu-fix-leak-in-virgl_resourc.patch vhost-user-gpu-fix-memory-disclosure-in-.patch vhost-user-gpu-fix-memory-leak-in-vg_res.patch vhost-user-gpu-fix-memory-leak-while-cal.patch vhost-user-gpu-fix-OOB-write-in-virgl_cm.patch vhost-user-gpu-fix-resource-leak-in-vg_r.patch vhost-vdpa-don-t-initialize-backend_feat.patch virtio-blk-Fix-rollback-path-in-virtio_b.patch virtio-Fail-if-iommu_platform-is-request.patch virtiofsd-Fix-side-effect-in-assert.patch vl-allow-not-specifying-size-in-m-when-u.patch vl-Fix-an-assert-failure-in-error-path.patch vl-plug-object-back-into-readconfig.patch vl-plumb-keyval-based-options-into-readc.patch x86-acpi-use-offset-instead-of-pointer-w.patch OBS-URL: https://build.opensuse.org/request/show/914430 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=665
80 lines
3.6 KiB
Diff
80 lines
3.6 KiB
Diff
From: Alexander Graf <agraf@suse.de>
|
|
Date: Tue, 9 Oct 2012 09:06:49 +0200
|
|
Subject: linux-user: use target_ulong
|
|
|
|
Linux syscalls pass pointers or data length or other information of that sort
|
|
to the kernel. This is all stuff you don't want to have sign extended.
|
|
Otherwise a host 64bit variable parameter with a size parameter will extend
|
|
it to a negative number, breaking lseek for example.
|
|
|
|
Pass syscall arguments as ulong always.
|
|
|
|
Signed-off-by: Alexander Graf <agraf@suse.de>
|
|
---
|
|
linux-user/qemu.h | 8 ++++----
|
|
linux-user/syscall.c | 18 +++++++++---------
|
|
2 files changed, 13 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
|
|
index 3b0b6b75fe8f1c5a5a5eb56ff99d..6a1d9b2d90da099bb2faaebbd265 100644
|
|
--- a/linux-user/qemu.h
|
|
+++ b/linux-user/qemu.h
|
|
@@ -231,10 +231,10 @@ abi_long memcpy_to_target(abi_ulong dest, const void *src,
|
|
void target_set_brk(abi_ulong new_brk);
|
|
abi_long do_brk(abi_ulong new_brk);
|
|
void syscall_init(void);
|
|
-abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|
- abi_long arg2, abi_long arg3, abi_long arg4,
|
|
- abi_long arg5, abi_long arg6, abi_long arg7,
|
|
- abi_long arg8);
|
|
+abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
|
|
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
|
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
|
+ abi_ulong arg8);
|
|
extern __thread CPUState *thread_cpu;
|
|
void cpu_loop(CPUArchState *env);
|
|
const char *target_strerror(int err);
|
|
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
|
index 3e206c14c12d48a2ee7d242f6f13..54dcd38709918dd5f8aa8013ee17 100644
|
|
--- a/linux-user/syscall.c
|
|
+++ b/linux-user/syscall.c
|
|
@@ -8182,10 +8182,10 @@ _syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
|
|
* of syscall results, can be performed.
|
|
* All errnos that do_syscall() returns must be -TARGET_<errcode>.
|
|
*/
|
|
-static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|
- abi_long arg2, abi_long arg3, abi_long arg4,
|
|
- abi_long arg5, abi_long arg6, abi_long arg7,
|
|
- abi_long arg8)
|
|
+static abi_long do_syscall1(void *cpu_env, int num, abi_ulong arg1,
|
|
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
|
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
|
+ abi_ulong arg8)
|
|
{
|
|
CPUState *cpu = env_cpu(cpu_env);
|
|
abi_long ret;
|
|
@@ -10794,7 +10794,7 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|
*/
|
|
ret = -TARGET_EINVAL;
|
|
if (cpu_isar_feature(aa64_sve, env_archcpu(cpu_env))
|
|
- && arg2 >= 0 && arg2 <= 512 * 16 && !(arg2 & 15)) {
|
|
+ && arg2 <= 512 * 16 && !(arg2 & 15)) {
|
|
CPUARMState *env = cpu_env;
|
|
ARMCPU *cpu = env_archcpu(env);
|
|
uint32_t vq, old_vq;
|
|
@@ -13163,10 +13163,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|
return ret;
|
|
}
|
|
|
|
-abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|
- abi_long arg2, abi_long arg3, abi_long arg4,
|
|
- abi_long arg5, abi_long arg6, abi_long arg7,
|
|
- abi_long arg8)
|
|
+abi_long do_syscall(void *cpu_env, int num, abi_ulong arg1,
|
|
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
|
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
|
+ abi_ulong arg8)
|
|
{
|
|
CPUState *cpu = env_cpu(cpu_env);
|
|
abi_long ret;
|