summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_mips/host_missing/accel_missing/602
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues_text/target_mips/host_missing/accel_missing/602')
-rw-r--r--gitlab/issues_text/target_mips/host_missing/accel_missing/60213
1 files changed, 13 insertions, 0 deletions
diff --git a/gitlab/issues_text/target_mips/host_missing/accel_missing/602 b/gitlab/issues_text/target_mips/host_missing/accel_missing/602
new file mode 100644
index 000000000..0360e8cbd
--- /dev/null
+++ b/gitlab/issues_text/target_mips/host_missing/accel_missing/602
@@ -0,0 +1,13 @@
+Failure to translate host to target errno in IP_RECVERR, IPV6_RECVERR emulation
+Description of problem:
+In translated IP_RECVERR (and IPV6_RECVERR) control messages, the `ee_errno` is not translated, so host errnos are observed on guests.  E.g., `ECONNREFUSED` is 111 on x86_64 host, but expected to be 146 in MIPS ABI.
+Steps to reproduce:
+1. https://cirrus-ci.com/task/5914289870471168
+Additional information:
+The bugs are on [lines 1970 and 2014 here](https://github.com/qemu/qemu/blob/211364c21e7f757ae1acf4e72b5df39c498fb88b/linux-user/syscall.c#L1970-L2014).
+
+The fix is something like:
+
+```
+__put_user(host_to_target_errno(errh->ee.ee_errno), &target_errh->ee.ee_errno);
+```