summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_i386/host_missing/accel_missing/1648
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-01 21:35:14 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-06-01 21:35:14 +0200
commit3e4c5a6261770bced301b5e74233e7866166ea5b (patch)
tree9379fddaba693ef8a045da06efee8529baa5f6f4 /gitlab/issues_text/target_i386/host_missing/accel_missing/1648
parente5634e2806195bee44407853c4bf8776f7abfa4f (diff)
downloadqemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.tar.gz
qemu-analysis-3e4c5a6261770bced301b5e74233e7866166ea5b.zip
clean up repository
Diffstat (limited to 'gitlab/issues_text/target_i386/host_missing/accel_missing/1648')
-rw-r--r--gitlab/issues_text/target_i386/host_missing/accel_missing/164858
1 files changed, 0 insertions, 58 deletions
diff --git a/gitlab/issues_text/target_i386/host_missing/accel_missing/1648 b/gitlab/issues_text/target_i386/host_missing/accel_missing/1648
deleted file mode 100644
index 653700577..000000000
--- a/gitlab/issues_text/target_i386/host_missing/accel_missing/1648
+++ /dev/null
@@ -1,58 +0,0 @@
-linux-user: incorrect alignment of sigframe::pretcode & rt_sigframe::pretcode cause crash
-Description of problem:
-Corrent Print Result:
-
-sp: cdd3b4e8
-
-SUCCEEDED!
-
-qemu-x86_64 Print Result:
-
-sp: 2804170
-
-qemu: uncaught target signal 11 (Segmentation fault) - core dumped
-
-Segmentation fault
-
-Reason of Bug:
-
-sigframe::pretcode & rt_sigframe::pretcode must align of 16n-sizeof(void*) instead of 16n, Because rsp align of 16n before instruction "call" in caller, After "call", push address of "call" in caller. sp of begin in callee is 16n-sizeof(void*)
-
-For example on x86_64:
-
-reference to "qemu/linux-user/i386/signal.c"
-
-```
-# define TARGET_FPSTATE_FXSAVE_OFFSET 0
-
-struct rt_sigframe {
-    abi_ulong pretcode;
-    struct target_ucontext uc;
-    struct target_siginfo info;
-    struct target_fpstate fpstate QEMU_ALIGNED(16);
-};
-#define TARGET_RT_SIGFRAME_FXSAVE_OFFSET (                                 \
-    offsetof(struct rt_sigframe, fpstate) + TARGET_FPSTATE_FXSAVE_OFFSET)
-```
-
-offsetof(struct rt_sigframe, fpstate) align of 16
-
-TARGET_FPSTATE_FXSAVE_OFFSET is 0
-
-TARGET_RT_SIGFRAME_FXSAVE_OFFSET is 16n, also alignment of fxsave is 64
-
-so address of rt_sigframe::pretcode is 16n instead of 16n - sizeof(void*), It is incorect!
-
-Fix the bug:
-
-```
-struct rt_sigframe {
-    abi_ulong pretcode;
-    struct target_ucontext uc;
-    struct target_siginfo info;
-    abi_ulong unused QEMU_ALIGNED(16);
-    struct target_fpstate fpstate;
-};
-```
-
-offsetof(struct rt_sigframe, fpstate) is 16n+8, so address of rt_sigframe::pretcode is 16n-8 on x86_64.