qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 7eddb5: linux-user: fix fork()


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 7eddb5: linux-user: fix fork()
Date: Tue, 28 Feb 2017 05:15:10 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 7eddb5ddacb783ba325277b8f420530c2ae8a2ce
      
https://github.com/qemu/qemu/commit/7eddb5ddacb783ba325277b8f420530c2ae8a2ce
  Author: Laurent Vivier <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix fork()

Since commit 5ea2fc8 ("linux-user: Sanity check clone flags"),
trying to run fork() fails with old distro on some architectures.

This is the case with HP-PA and Debian 5 (Lenny).

It fails on:
    if ((flags & CSIGNAL) != TARGET_SIGCHLD) {
       return -TARGET_EINVAL;
   }

because flags is 17, whereas on HP-PA, SIGCHLD is 18.
17 is the SIGCHLD value of my host (x86_64).

It appears that for TARGET_NR_fork and TARGET_NR_vfork, QEMU calls
do_fork() with SIGCHLD instead of TARGET_SIGCHLD.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: ee1ac3a1822b9386b2363c606908be44ca096401
      
https://github.com/qemu/qemu/commit/ee1ac3a1822b9386b2363c606908be44ca096401
  Author: Helge Deller <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M linux-user/syscall.c
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user: Add sockopts for IPv6 ping and IPv6 traceroute

Add the neccessary sockopts for ping and traceroute on IPv6.

This fixes the following qemu warnings with IPv6:
Unsupported ancillary data: 0/2
Unsupported ancillary data: 0/11
Unsupported ancillary data: 41/25
Unsupported setsockopt level=0 optname=12
Unsupported setsockopt level=41 optname=16
Unsupported setsockopt level=41 optname=25
Unsupported setsockopt level=41 optname=50
Unsupported setsockopt level=41 optname=51
Unsupported setsockopt level=41 optname=8
Unsupported setsockopt level=58 optname=1

Tested with hppa-linux-user (big-endian) on x86_64 (little-endian).

Signed-off-by: Helge Deller <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 1c1df0198b30e180bd63891727fa1c3e0c96eb8e
      
https://github.com/qemu/qemu/commit/1c1df0198b30e180bd63891727fa1c3e0c96eb8e
  Author: Pranith Kumar <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M linux-user/signal.c
    M target/i386/cpu.h
    M target/i386/fpu_helper.c

  Log Message:
  -----------
  linux-user: Add signal handling support for x86_64

Note that x86_64 has only _rt signal handlers. This implementation
attempts to share code with the x86_32 implementation.

CC: Laurent Vivier <address@hidden>
Signed-off-by: Allan Wirth <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Pranith Kumar <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 3219de458c497e15fd3b0c3ba3c1952fc34fe3da
      
https://github.com/qemu/qemu/commit/3219de458c497e15fd3b0c3ba3c1952fc34fe3da
  Author: Laurent Vivier <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M linux-user/signal.c

  Log Message:
  -----------
  linux-user: correctly manage SR in ucontext

Use cpu_m68k_get_ccr()/cpu_m68k_set_ccr() to setup and restore correctly
the value of SR in the ucontext structure

Signed-off-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>


  Commit: 59ebb6e451ffe5d4ccb5a62ee6646ed418361ef0
      
https://github.com/qemu/qemu/commit/59ebb6e451ffe5d4ccb5a62ee6646ed418361ef0
  Author: Michael Karcher <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M linux-user/signal.c

  Log Message:
  -----------
  linux-user: fix do_rt_sigreturn on m68k linux userspace emulation

do_rt_sigreturn uses an uninitialised local variable instead of fetching
the old signal mask directly from the signal frame when restoring the mask,
so the signal mask is undefined after do_rt_sigreturn. As the signal
frame data is in target-endian order, target_to_host_sigset instead of
target_to_host_sigset_internal is required.

do_sigreturn is correct in using target_to_host_sigset_internal, because
get_user already did the endianness conversion.

Signed-off-by: Michael Karcher <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>


  Commit: 98a3331a552f6e033da10bd07b14ccdd81d05e61
      
https://github.com/qemu/qemu/commit/98a3331a552f6e033da10bd07b14ccdd81d05e61
  Author: Franklin \"Snaipe\" Mathieu <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  syscall: fixed mincore(2) not failing with ENOMEM

The current implementation of the mincore(2) syscall sets errno to
EFAULT when the region identified by the first two parameters is
invalid.

This goes against the man page specification, where mincore(2) should
only fail with EFAULT when the third parameter is an invalid address;
and fail with ENOMEM when the checked region does not point to mapped
memory.

Signed-off-by: Franklin "Snaipe" Mathieu <address@hidden>
Cc: Riku Voipio <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 105d86ff38e81cde5ce56ee334186c2de6389dc0
      
https://github.com/qemu/qemu/commit/105d86ff38e81cde5ce56ee334186c2de6389dc0
  Author: Peter Maydell <address@hidden>
  Date:   2017-02-28 (Tue, 28 Feb 2017)

  Changed paths:
    M linux-user/signal.c
    M linux-user/syscall.c
    M linux-user/syscall_defs.h
    M target/i386/cpu.h
    M target/i386/fpu_helper.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/vivier2/tags/linux-user-for-upstream-pull-request' into staging

# gpg: Signature made Mon 27 Feb 2017 22:15:47 GMT
# gpg:                using RSA key 0xF30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <address@hidden>"
# gpg:                 aka "Laurent Vivier <address@hidden>"
# gpg:                 aka "Laurent Vivier (Red Hat) <address@hidden>"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier2/tags/linux-user-for-upstream-pull-request:
  syscall: fixed mincore(2) not failing with ENOMEM
  linux-user: fix do_rt_sigreturn on m68k linux userspace emulation
  linux-user: correctly manage SR in ucontext
  linux-user: Add signal handling support for x86_64
  linux-user: Add sockopts for IPv6 ping and IPv6 traceroute
  linux-user: fix fork()

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/6181478f6395...105d86ff38e8

reply via email to

[Prev in Thread] Current Thread [Next in Thread]