!1058 [sync] PR-1057: QEMU update to version 6.2.0-104
From: @openeuler-sync-bot Reviewed-by: @imxcc Signed-off-by: @imxcc
This commit is contained in:
commit
c4f4bbb3ef
64
9pfs-fix-crash-on-Treaddir-request.patch
Normal file
64
9pfs-fix-crash-on-Treaddir-request.patch
Normal file
@ -0,0 +1,64 @@
|
||||
From 4d4c15d8fac49731db7727c7f91b4184c2a95d78 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Schoenebeck <qemu_oss@crudebyte.com>
|
||||
Date: Tue, 5 Nov 2024 11:25:26 +0100
|
||||
Subject: [PATCH] 9pfs: fix crash on 'Treaddir' request
|
||||
|
||||
A bad (broken or malicious) 9p client (guest) could cause QEMU host to
|
||||
crash by sending a 9p 'Treaddir' request with a numeric file ID (FID) that
|
||||
was previously opened for a file instead of an expected directory:
|
||||
|
||||
#0 0x0000762aff8f4919 in __GI___rewinddir (dirp=0xf) at
|
||||
../sysdeps/unix/sysv/linux/rewinddir.c:29
|
||||
#1 0x0000557b7625fb40 in do_readdir_many (pdu=0x557bb67d2eb0,
|
||||
fidp=0x557bb67955b0, entries=0x762afe9fff58, offset=0, maxsize=131072,
|
||||
dostat=<optimized out>) at ../hw/9pfs/codir.c:101
|
||||
#2 v9fs_co_readdir_many (pdu=pdu@entry=0x557bb67d2eb0,
|
||||
fidp=fidp@entry=0x557bb67955b0, entries=entries@entry=0x762afe9fff58,
|
||||
offset=0, maxsize=131072, dostat=false) at ../hw/9pfs/codir.c:226
|
||||
#3 0x0000557b7625c1f9 in v9fs_do_readdir (pdu=0x557bb67d2eb0,
|
||||
fidp=0x557bb67955b0, offset=<optimized out>,
|
||||
max_count=<optimized out>) at ../hw/9pfs/9p.c:2488
|
||||
#4 v9fs_readdir (opaque=0x557bb67d2eb0) at ../hw/9pfs/9p.c:2602
|
||||
|
||||
That's because V9fsFidOpenState was declared as union type. So the
|
||||
same memory region is used for either an open POSIX file handle (int),
|
||||
or a POSIX DIR* pointer, etc., so 9p server incorrectly used the
|
||||
previously opened (valid) POSIX file handle (0xf) as DIR* pointer,
|
||||
eventually causing a crash in glibc's rewinddir() function.
|
||||
|
||||
Root cause was therefore a missing check in 9p server's 'Treaddir'
|
||||
request handler, which must ensure that the client supplied FID was
|
||||
really opened as directory stream before trying to access the
|
||||
aforementioned union and its DIR* member.
|
||||
|
||||
Cc: qemu-stable@nongnu.org
|
||||
Fixes: d62dbb51f7 ("virtio-9p: Add fidtype so that we can do type ...")
|
||||
Reported-by: Akihiro Suda <suda.kyoto@gmail.com>
|
||||
Tested-by: Akihiro Suda <suda.kyoto@gmail.com>
|
||||
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
|
||||
Reviewed-by: Greg Kurz <groug@kaod.org>
|
||||
Message-Id: <E1t8GnN-002RS8-E2@kylie.crudebyte.com>
|
||||
Signed-off-by: Zhongrui Tang <tangzhongrui_yewu@cmss.chinamobile.com>
|
||||
---
|
||||
hw/9pfs/9p.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
|
||||
index 15b3f4d385..4e52f26afe 100644
|
||||
--- a/hw/9pfs/9p.c
|
||||
+++ b/hw/9pfs/9p.c
|
||||
@@ -2528,6 +2528,11 @@ static void coroutine_fn v9fs_readdir(void *opaque)
|
||||
retval = -EINVAL;
|
||||
goto out_nofid;
|
||||
}
|
||||
+ if (fidp->fid_type != P9_FID_DIR) {
|
||||
+ warn_report_once("9p: bad client: T_readdir on non-directory stream");
|
||||
+ retval = -ENOTDIR;
|
||||
+ goto out;
|
||||
+ }
|
||||
if (!fidp->fs.dir.stream) {
|
||||
retval = -EINVAL;
|
||||
goto out;
|
||||
--
|
||||
2.33.0
|
||||
|
||||
56
intel_iommu-Add-missed-reserved-bit-check-for-IEC-de.patch
Normal file
56
intel_iommu-Add-missed-reserved-bit-check-for-IEC-de.patch
Normal file
@ -0,0 +1,56 @@
|
||||
From cba5a006eb08a400126e1882923a28f71a40a94a Mon Sep 17 00:00:00 2001
|
||||
From: Zhenzhong Duan <zhenzhong.duan@intel.com>
|
||||
Date: Mon, 4 Nov 2024 20:55:36 +0800
|
||||
Subject: [PATCH] intel_iommu: Add missed reserved bit check for IEC descriptor
|
||||
|
||||
IEC descriptor is 128-bit invalidation descriptor, must be padded with
|
||||
128-bits of 0s in the upper bytes to create a 256-bit descriptor when
|
||||
the invalidation queue is configured for 256-bit descriptors (IQA_REG.DW=1).
|
||||
|
||||
Fixes: 02a2cbc872df ("x86-iommu: introduce IEC notifiers")
|
||||
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
|
||||
Message-Id: <20241104125536.1236118-4-zhenzhong.duan@intel.com>
|
||||
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||
Signed-off-by: Zhongrui Tang tangzhongrui_yewu@cmss.chinamobile.com
|
||||
---
|
||||
hw/i386/intel_iommu.c | 8 ++++++++
|
||||
hw/i386/intel_iommu_internal.h | 3 +++
|
||||
2 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
|
||||
index 2f8bcc1557..bc580237a8 100644
|
||||
--- a/hw/i386/intel_iommu.c
|
||||
+++ b/hw/i386/intel_iommu.c
|
||||
@@ -2417,6 +2417,14 @@ static bool vtd_process_iotlb_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc)
|
||||
static bool vtd_process_inv_iec_desc(IntelIOMMUState *s,
|
||||
VTDInvDesc *inv_desc)
|
||||
{
|
||||
+ uint64_t mask[4] = {VTD_INV_DESC_IEC_RSVD, VTD_INV_DESC_ALL_ONE,
|
||||
+ VTD_INV_DESC_ALL_ONE, VTD_INV_DESC_ALL_ONE};
|
||||
+
|
||||
+ if (!vtd_inv_desc_reserved_check(s, inv_desc, mask, false,
|
||||
+ __func__, "iec inv")) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
trace_vtd_inv_desc_iec(inv_desc->iec.granularity,
|
||||
inv_desc->iec.index,
|
||||
inv_desc->iec.index_mask);
|
||||
diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h
|
||||
index 2b2f0dd848..7415b56bc4 100644
|
||||
--- a/hw/i386/intel_iommu_internal.h
|
||||
+++ b/hw/i386/intel_iommu_internal.h
|
||||
@@ -388,6 +388,9 @@ typedef union VTDInvDesc VTDInvDesc;
|
||||
#define VTD_INV_DESC_DEVICE_IOTLB_RSVD_HI 0xffeULL
|
||||
#define VTD_INV_DESC_DEVICE_IOTLB_RSVD_LO 0xffff0000ffe0f1f0
|
||||
|
||||
+/* Masks for Interrupt Entry Invalidate Descriptor */
|
||||
+#define VTD_INV_DESC_IEC_RSVD 0xffff000007fff1e0ULL
|
||||
+
|
||||
/* Rsvd field masks for spte */
|
||||
#define VTD_SPTE_SNP 0x800ULL
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
120
linux-user-Add-missing-clock_gettime64-syscall-strac.patch
Normal file
120
linux-user-Add-missing-clock_gettime64-syscall-strac.patch
Normal file
@ -0,0 +1,120 @@
|
||||
From 13cffdbd2c5074682887c27f47c81e87843e741d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=E5=88=98=E5=A9=A720201110?=
|
||||
<liujing_yewu@cmss.chinamobile.com>
|
||||
Date: Wed, 13 Nov 2024 19:36:45 +0800
|
||||
Subject: [PATCH] linux-user: Add missing clock_gettime64() syscall strace
|
||||
|
||||
Allow linux-user to strace the clock_gettime64() syscall.
|
||||
This syscall is used a lot on 32-bit guest architectures which use newer
|
||||
glibc versions.
|
||||
|
||||
Signed-off-by: Helge Deller <deller@gmx.de>
|
||||
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Message-Id: <20220918194555.83535-3-deller@gmx.de>
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Signed-off-by: Liu Jing <liujing_yewu@cmss.chinamobile.com>
|
||||
---
|
||||
linux-user/strace.c | 53 ++++++++++++++++++++++++++++++++++++++++++
|
||||
linux-user/strace.list | 4 ++++
|
||||
2 files changed, 57 insertions(+)
|
||||
|
||||
diff --git a/linux-user/strace.c b/linux-user/strace.c
|
||||
index 37d66d0dff..4cf0e95edb 100644
|
||||
--- a/linux-user/strace.c
|
||||
+++ b/linux-user/strace.c
|
||||
@@ -81,6 +81,7 @@ UNUSED static void print_buf(abi_long addr, abi_long len, int last);
|
||||
UNUSED static void print_raw_param(const char *, abi_long, int);
|
||||
UNUSED static void print_timeval(abi_ulong, int);
|
||||
UNUSED static void print_timespec(abi_ulong, int);
|
||||
+UNUSED static void print_timespec64(abi_ulong, int);
|
||||
UNUSED static void print_timezone(abi_ulong, int);
|
||||
UNUSED static void print_itimerval(abi_ulong, int);
|
||||
UNUSED static void print_number(abi_long, int);
|
||||
@@ -803,6 +804,24 @@ print_syscall_ret_clock_gettime(void *cpu_env, const struct syscallname *name,
|
||||
#define print_syscall_ret_clock_getres print_syscall_ret_clock_gettime
|
||||
#endif
|
||||
|
||||
+#if defined(TARGET_NR_clock_gettime64)
|
||||
+static void
|
||||
+print_syscall_ret_clock_gettime64(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
+ abi_long ret, abi_long arg0, abi_long arg1,
|
||||
+ abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
+ abi_long arg5)
|
||||
+{
|
||||
+ if (!print_syscall_err(ret)) {
|
||||
+ qemu_log(TARGET_ABI_FMT_ld, ret);
|
||||
+ qemu_log(" (");
|
||||
+ print_timespec64(arg1, 1);
|
||||
+ qemu_log(")");
|
||||
+ }
|
||||
+
|
||||
+ qemu_log("\n");
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#ifdef TARGET_NR_gettimeofday
|
||||
static void
|
||||
print_syscall_ret_gettimeofday(void *cpu_env, const struct syscallname *name,
|
||||
@@ -1662,6 +1681,27 @@ print_timespec(abi_ulong ts_addr, int last)
|
||||
}
|
||||
}
|
||||
|
||||
+static void
|
||||
+print_timespec64(abi_ulong ts_addr, int last)
|
||||
+{
|
||||
+ if (ts_addr) {
|
||||
+ struct target__kernel_timespec *ts;
|
||||
+
|
||||
+ ts = lock_user(VERIFY_READ, ts_addr, sizeof(*ts), 1);
|
||||
+ if (!ts) {
|
||||
+ print_pointer(ts_addr, last);
|
||||
+ return;
|
||||
+ }
|
||||
+ qemu_log("{tv_sec = %lld"
|
||||
+ ",tv_nsec = %lld}%s",
|
||||
+ (long long)tswap64(ts->tv_sec), (long long)tswap64(ts->tv_nsec),
|
||||
+ get_comma(last));
|
||||
+ unlock_user(ts, ts_addr, 0);
|
||||
+ } else {
|
||||
+ qemu_log("NULL%s", get_comma(last));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void
|
||||
print_timezone(abi_ulong tz_addr, int last)
|
||||
{
|
||||
@@ -2277,6 +2317,19 @@ print_clock_gettime(void *cpu_env, const struct syscallname *name,
|
||||
#define print_clock_getres print_clock_gettime
|
||||
#endif
|
||||
|
||||
+#if defined(TARGET_NR_clock_gettime64)
|
||||
+static void
|
||||
+print_clock_gettime64(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
+ abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
+ abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
+{
|
||||
+ print_syscall_prologue(name);
|
||||
+ print_enums(clockids, arg0, 0);
|
||||
+ print_pointer(arg1, 1);
|
||||
+ print_syscall_epilogue(name);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#ifdef TARGET_NR_clock_settime
|
||||
static void
|
||||
print_clock_settime(void *cpu_env, const struct syscallname *name,
|
||||
diff --git a/linux-user/strace.list b/linux-user/strace.list
|
||||
index 544869f1ab..f9b3f01c6c 100644
|
||||
--- a/linux-user/strace.list
|
||||
+++ b/linux-user/strace.list
|
||||
@@ -1674,3 +1674,7 @@
|
||||
#ifdef TARGET_NR_copy_file_range
|
||||
{ TARGET_NR_copy_file_range, "copy_file_range", "%s(%d,%p,%d,%p,"TARGET_ABI_FMT_lu",%u)", NULL, NULL },
|
||||
#endif
|
||||
+#ifdef TARGET_NR_clock_gettime64
|
||||
+{ TARGET_NR_clock_gettime64, "clock_gettime64" , NULL, print_clock_gettime64,
|
||||
+ print_syscall_ret_clock_gettime64 },
|
||||
+#endif
|
||||
--
|
||||
2.33.0
|
||||
|
||||
187
linux-user-Add-missing-signals-in-strace-output.patch
Normal file
187
linux-user-Add-missing-signals-in-strace-output.patch
Normal file
@ -0,0 +1,187 @@
|
||||
From 0b83779bb381053ce5de13807dfdc46d2781a2ca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=E5=88=98=E5=A9=A720201110?=
|
||||
<liujing_yewu@cmss.chinamobile.com>
|
||||
Date: Wed, 13 Nov 2024 19:32:32 +0800
|
||||
Subject: [PATCH] linux-user: Add missing signals in strace output
|
||||
|
||||
Some of the guest signal numbers are currently not converted to
|
||||
their representative names in the strace output, e.g. SIGVTALRM.
|
||||
|
||||
This patch introduces a smart way to generate and keep in sync the
|
||||
host-to-guest and guest-to-host signal conversion tables for usage in
|
||||
the qemu signal and strace code. This ensures that any signals
|
||||
will now show up in both tables.
|
||||
|
||||
There is no functional change in this patch - with the exception that yet
|
||||
missing signal names now show up in the strace code too.
|
||||
|
||||
Signed-off-by: Helge Deller <deller@gmx.de>
|
||||
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Message-Id: <20220918194555.83535-2-deller@gmx.de>
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Signed-off-by: Liu Jing <liujing_yewu@cmss.chinamobile.com>
|
||||
---
|
||||
linux-user/signal-common.h | 46 ++++++++++++++++++++++++++++++++++++++
|
||||
linux-user/signal.c | 37 +++---------------------------
|
||||
linux-user/strace.c | 30 +++++++++----------------
|
||||
3 files changed, 60 insertions(+), 53 deletions(-)
|
||||
|
||||
diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h
|
||||
index 7457f8025c..00d9e04d74 100644
|
||||
--- a/linux-user/signal-common.h
|
||||
+++ b/linux-user/signal-common.h
|
||||
@@ -90,4 +90,50 @@ abi_long do_swapcontext(CPUArchState *env, abi_ulong uold_ctx,
|
||||
*/
|
||||
int block_signals(void); /* Returns non zero if signal pending */
|
||||
|
||||
+#if defined(SIGSTKFLT) && defined(TARGET_SIGSTKFLT)
|
||||
+#define MAKE_SIG_ENTRY_SIGSTKFLT MAKE_SIG_ENTRY(SIGSTKFLT)
|
||||
+#else
|
||||
+#define MAKE_SIG_ENTRY_SIGSTKFLT
|
||||
+#endif
|
||||
+
|
||||
+#if defined(SIGIOT) && defined(TARGET_SIGIOT)
|
||||
+#define MAKE_SIG_ENTRY_SIGIOT MAKE_SIG_ENTRY(SIGIOT)
|
||||
+#else
|
||||
+#define MAKE_SIG_ENTRY_SIGIOT
|
||||
+#endif
|
||||
+
|
||||
+#define MAKE_SIGNAL_LIST \
|
||||
+ MAKE_SIG_ENTRY(SIGHUP) \
|
||||
+ MAKE_SIG_ENTRY(SIGINT) \
|
||||
+ MAKE_SIG_ENTRY(SIGQUIT) \
|
||||
+ MAKE_SIG_ENTRY(SIGILL) \
|
||||
+ MAKE_SIG_ENTRY(SIGTRAP) \
|
||||
+ MAKE_SIG_ENTRY(SIGABRT) \
|
||||
+ MAKE_SIG_ENTRY(SIGBUS) \
|
||||
+ MAKE_SIG_ENTRY(SIGFPE) \
|
||||
+ MAKE_SIG_ENTRY(SIGKILL) \
|
||||
+ MAKE_SIG_ENTRY(SIGUSR1) \
|
||||
+ MAKE_SIG_ENTRY(SIGSEGV) \
|
||||
+ MAKE_SIG_ENTRY(SIGUSR2) \
|
||||
+ MAKE_SIG_ENTRY(SIGPIPE) \
|
||||
+ MAKE_SIG_ENTRY(SIGALRM) \
|
||||
+ MAKE_SIG_ENTRY(SIGTERM) \
|
||||
+ MAKE_SIG_ENTRY(SIGCHLD) \
|
||||
+ MAKE_SIG_ENTRY(SIGCONT) \
|
||||
+ MAKE_SIG_ENTRY(SIGSTOP) \
|
||||
+ MAKE_SIG_ENTRY(SIGTSTP) \
|
||||
+ MAKE_SIG_ENTRY(SIGTTIN) \
|
||||
+ MAKE_SIG_ENTRY(SIGTTOU) \
|
||||
+ MAKE_SIG_ENTRY(SIGURG) \
|
||||
+ MAKE_SIG_ENTRY(SIGXCPU) \
|
||||
+ MAKE_SIG_ENTRY(SIGXFSZ) \
|
||||
+ MAKE_SIG_ENTRY(SIGVTALRM) \
|
||||
+ MAKE_SIG_ENTRY(SIGPROF) \
|
||||
+ MAKE_SIG_ENTRY(SIGWINCH) \
|
||||
+ MAKE_SIG_ENTRY(SIGIO) \
|
||||
+ MAKE_SIG_ENTRY(SIGPWR) \
|
||||
+ MAKE_SIG_ENTRY(SIGSYS) \
|
||||
+ MAKE_SIG_ENTRY_SIGSTKFLT \
|
||||
+ MAKE_SIG_ENTRY_SIGIOT
|
||||
+
|
||||
#endif
|
||||
diff --git a/linux-user/signal.c b/linux-user/signal.c
|
||||
index 6d5e5b698c..f65d6cff2f 100644
|
||||
--- a/linux-user/signal.c
|
||||
+++ b/linux-user/signal.c
|
||||
@@ -53,40 +53,9 @@ abi_ulong default_rt_sigreturn;
|
||||
QEMU_BUILD_BUG_ON(__SIGRTMAX + 1 != _NSIG);
|
||||
#endif
|
||||
static uint8_t host_to_target_signal_table[_NSIG] = {
|
||||
- [SIGHUP] = TARGET_SIGHUP,
|
||||
- [SIGINT] = TARGET_SIGINT,
|
||||
- [SIGQUIT] = TARGET_SIGQUIT,
|
||||
- [SIGILL] = TARGET_SIGILL,
|
||||
- [SIGTRAP] = TARGET_SIGTRAP,
|
||||
- [SIGABRT] = TARGET_SIGABRT,
|
||||
-/* [SIGIOT] = TARGET_SIGIOT,*/
|
||||
- [SIGBUS] = TARGET_SIGBUS,
|
||||
- [SIGFPE] = TARGET_SIGFPE,
|
||||
- [SIGKILL] = TARGET_SIGKILL,
|
||||
- [SIGUSR1] = TARGET_SIGUSR1,
|
||||
- [SIGSEGV] = TARGET_SIGSEGV,
|
||||
- [SIGUSR2] = TARGET_SIGUSR2,
|
||||
- [SIGPIPE] = TARGET_SIGPIPE,
|
||||
- [SIGALRM] = TARGET_SIGALRM,
|
||||
- [SIGTERM] = TARGET_SIGTERM,
|
||||
-#ifdef SIGSTKFLT
|
||||
- [SIGSTKFLT] = TARGET_SIGSTKFLT,
|
||||
-#endif
|
||||
- [SIGCHLD] = TARGET_SIGCHLD,
|
||||
- [SIGCONT] = TARGET_SIGCONT,
|
||||
- [SIGSTOP] = TARGET_SIGSTOP,
|
||||
- [SIGTSTP] = TARGET_SIGTSTP,
|
||||
- [SIGTTIN] = TARGET_SIGTTIN,
|
||||
- [SIGTTOU] = TARGET_SIGTTOU,
|
||||
- [SIGURG] = TARGET_SIGURG,
|
||||
- [SIGXCPU] = TARGET_SIGXCPU,
|
||||
- [SIGXFSZ] = TARGET_SIGXFSZ,
|
||||
- [SIGVTALRM] = TARGET_SIGVTALRM,
|
||||
- [SIGPROF] = TARGET_SIGPROF,
|
||||
- [SIGWINCH] = TARGET_SIGWINCH,
|
||||
- [SIGIO] = TARGET_SIGIO,
|
||||
- [SIGPWR] = TARGET_SIGPWR,
|
||||
- [SIGSYS] = TARGET_SIGSYS,
|
||||
+#define MAKE_SIG_ENTRY(sig) [sig] = TARGET_##sig,
|
||||
+ MAKE_SIGNAL_LIST
|
||||
+#undef MAKE_SIG_ENTRY
|
||||
/* next signals stay the same */
|
||||
};
|
||||
|
||||
diff --git a/linux-user/strace.c b/linux-user/strace.c
|
||||
index 37d66d0dff..019fa329f1 100644
|
||||
--- a/linux-user/strace.c
|
||||
+++ b/linux-user/strace.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "qemu.h"
|
||||
#include "user-internals.h"
|
||||
#include "strace.h"
|
||||
+#include "signal-common.h"
|
||||
|
||||
struct syscallname {
|
||||
int nr;
|
||||
@@ -141,30 +142,21 @@ if( cmd == val ) { \
|
||||
qemu_log("%d", cmd);
|
||||
}
|
||||
|
||||
+static const char * const target_signal_name[] = {
|
||||
+#define MAKE_SIG_ENTRY(sig) [TARGET_##sig] = #sig,
|
||||
+ MAKE_SIGNAL_LIST
|
||||
+#undef MAKE_SIG_ENTRY
|
||||
+};
|
||||
+
|
||||
static void
|
||||
print_signal(abi_ulong arg, int last)
|
||||
{
|
||||
const char *signal_name = NULL;
|
||||
- switch(arg) {
|
||||
- case TARGET_SIGHUP: signal_name = "SIGHUP"; break;
|
||||
- case TARGET_SIGINT: signal_name = "SIGINT"; break;
|
||||
- case TARGET_SIGQUIT: signal_name = "SIGQUIT"; break;
|
||||
- case TARGET_SIGILL: signal_name = "SIGILL"; break;
|
||||
- case TARGET_SIGABRT: signal_name = "SIGABRT"; break;
|
||||
- case TARGET_SIGFPE: signal_name = "SIGFPE"; break;
|
||||
- case TARGET_SIGKILL: signal_name = "SIGKILL"; break;
|
||||
- case TARGET_SIGSEGV: signal_name = "SIGSEGV"; break;
|
||||
- case TARGET_SIGPIPE: signal_name = "SIGPIPE"; break;
|
||||
- case TARGET_SIGALRM: signal_name = "SIGALRM"; break;
|
||||
- case TARGET_SIGTERM: signal_name = "SIGTERM"; break;
|
||||
- case TARGET_SIGUSR1: signal_name = "SIGUSR1"; break;
|
||||
- case TARGET_SIGUSR2: signal_name = "SIGUSR2"; break;
|
||||
- case TARGET_SIGCHLD: signal_name = "SIGCHLD"; break;
|
||||
- case TARGET_SIGCONT: signal_name = "SIGCONT"; break;
|
||||
- case TARGET_SIGSTOP: signal_name = "SIGSTOP"; break;
|
||||
- case TARGET_SIGTTIN: signal_name = "SIGTTIN"; break;
|
||||
- case TARGET_SIGTTOU: signal_name = "SIGTTOU"; break;
|
||||
+
|
||||
+ if (arg < ARRAY_SIZE(target_signal_name)) {
|
||||
+ signal_name = target_signal_name[arg];
|
||||
}
|
||||
+
|
||||
if (signal_name == NULL) {
|
||||
print_raw_param("%ld", arg, last);
|
||||
return;
|
||||
--
|
||||
2.33.0
|
||||
|
||||
37
qemu-bswap-Undefine-CPU_CONVERT-once-done.patch
Normal file
37
qemu-bswap-Undefine-CPU_CONVERT-once-done.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 2eb8238d0a6ed3ba3d85756b7ae954cb11ad6de9 Mon Sep 17 00:00:00 2001
|
||||
From: Zhang Jiao <zhangjiao2_yewu@cmss.chinamobile.com>
|
||||
Date: Tue, 12 Nov 2024 14:10:39 +0800
|
||||
Subject: [PATCH] qemu/bswap: Undefine CPU_CONVERT() once done
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
cheery-pick from 1d73353f236209e9b5987d7c6b30b2a32b739210
|
||||
|
||||
Better undefined macros once we are done with them,
|
||||
like we do few lines later with DO_STN_LDN_P().
|
||||
|
||||
Signed-off-by: Philippe Mathieu-Daudé philmd@linaro.org
|
||||
Reviewed-by: Thomas Huth thuth@redhat.com
|
||||
Message-Id: 20241003234211.53644-2-philmd@linaro.org
|
||||
Signed-off-by: Zhang Jiao <zhangjiao2_yewu@cmss.chinamobile.com>
|
||||
---
|
||||
include/qemu/bswap.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
|
||||
index 2d3bb8bbed..d8364f5011 100644
|
||||
--- a/include/qemu/bswap.h
|
||||
+++ b/include/qemu/bswap.h
|
||||
@@ -183,6 +183,8 @@ CPU_CONVERT(le, 16, uint16_t)
|
||||
CPU_CONVERT(le, 32, uint32_t)
|
||||
CPU_CONVERT(le, 64, uint64_t)
|
||||
|
||||
+#undef CPU_CONVERT
|
||||
+
|
||||
/*
|
||||
* Same as cpu_to_le{16,32}, except that gcc will figure the result is
|
||||
* a compile-time constant if you pass in a constant. So this can be
|
||||
--
|
||||
2.33.0
|
||||
|
||||
16
qemu.spec
16
qemu.spec
@ -3,7 +3,7 @@
|
||||
|
||||
Name: qemu
|
||||
Version: 6.2.0
|
||||
Release: 103
|
||||
Release: 104
|
||||
Epoch: 10
|
||||
Summary: QEMU is a generic and open source machine emulator and virtualizer
|
||||
License: GPLv2 and BSD and MIT and CC-BY-SA-4.0
|
||||
@ -1120,6 +1120,12 @@ Patch1105: chardev-baum-Use-definitions-to-avoid-dynamic-stack-.patch
|
||||
Patch1106: linux-user-use-max-instead-of-qemu32-qemu64-by-defau.patch
|
||||
Patch1107: intel_iommu-Add-missed-sanity-check-for-256-bit-inva.patch
|
||||
Patch1108: Introduce-the-SM4-cipher-algorithms-OSCCA-GB-T-32907.patch
|
||||
Patch1109: intel_iommu-Add-missed-reserved-bit-check-for-IEC-de.patch
|
||||
Patch1110: 9pfs-fix-crash-on-Treaddir-request.patch
|
||||
Patch1111: s390x-ap-fix-missing-subsystem-reset-registration.patch
|
||||
Patch1112: qemu-bswap-Undefine-CPU_CONVERT-once-done.patch
|
||||
Patch1113: linux-user-Add-missing-signals-in-strace-output.patch
|
||||
Patch1114: linux-user-Add-missing-clock_gettime64-syscall-strac.patch
|
||||
|
||||
|
||||
BuildRequires: flex
|
||||
@ -1719,6 +1725,14 @@ getent passwd qemu >/dev/null || \
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Dec 17 2024 <ganqixin@huawei.com> - 10:6.2.0-104
|
||||
- intel_iommu: Add missed reserved bit check for IEC descriptor
|
||||
- 9pfs: fix crash on 'Treaddir' request
|
||||
- s390x/ap: fix missing subsystem reset registration
|
||||
- qemu/bswap: Undefine CPU_CONVERT() once done
|
||||
- linux-user: Add missing signals in strace output
|
||||
- linux-user: Add missing clock_gettime64() syscall strace
|
||||
|
||||
* Sat Nov 30 2024 <fengjiabo1@huawei.com> - 10:6.2.0-103
|
||||
- Introduce the SM4 cipher algorithms (OSCCA GB/T 32907-2016).
|
||||
- intel_iommu: Add missed sanity check for 256-bit invalidation queue
|
||||
|
||||
37
s390x-ap-fix-missing-subsystem-reset-registration.patch
Normal file
37
s390x-ap-fix-missing-subsystem-reset-registration.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 2cf94012e42acf9eb9f4816a9b302940e9d28603 Mon Sep 17 00:00:00 2001
|
||||
From: Zhang Jiao <zhangjiao2_yewu@cmss.chinamobile.com>
|
||||
Date: Tue, 12 Nov 2024 13:45:48 +0800
|
||||
Subject: [PATCH] s390x/ap: fix missing subsystem reset registration
|
||||
|
||||
cheery-pick from 297ec01f0b9864ea8209ca0ddc6643b4c0574bdb
|
||||
|
||||
A subsystem reset contains a reset of AP resources which has been
|
||||
missing. Adding the AP bridge to the list of device types that need
|
||||
reset fixes this issue.
|
||||
|
||||
Reviewed-by: Jason J. Herne <jjherne@linux.ibm.com>
|
||||
Reviewed-by: Tony Krowiak <akrowiak@linux.ibm.com>
|
||||
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
|
||||
Fixes: a51b3153 ("s390x/ap: base Adjunct Processor (AP) object model")
|
||||
Message-ID: <20230823142219.1046522-2-seiden@linux.ibm.com>
|
||||
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
||||
Signed-off-by: Zhang Jiao <zhangjiao2_yewu@cmss.chinamobile.com>
|
||||
---
|
||||
hw/s390x/s390-virtio-ccw.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
|
||||
index c84b89ba43..0a57399b75 100644
|
||||
--- a/hw/s390x/s390-virtio-ccw.c
|
||||
+++ b/hw/s390x/s390-virtio-ccw.c
|
||||
@@ -99,6 +99,7 @@ static const char *const reset_dev_types[] = {
|
||||
"s390-flic",
|
||||
"diag288",
|
||||
TYPE_S390_PCI_HOST_BRIDGE,
|
||||
+ TYPE_AP_BRIDGE,
|
||||
};
|
||||
|
||||
static void subsystem_reset(void)
|
||||
--
|
||||
2.33.0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user