qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 20ef66: target/xtensa: fix flush_window_regs


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 20ef66: target/xtensa: fix flush_window_regs
Date: Tue, 03 Apr 2018 15:23:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 20ef66706020a874d03092a673a24ae74685cb4d
      
https://github.com/qemu/qemu/commit/20ef66706020a874d03092a673a24ae74685cb4d
  Author: Max Filippov <address@hidden>
  Date:   2018-03-31 (Sat, 31 Mar 2018)

  Changed paths:
    M linux-user/signal.c

  Log Message:
  -----------
  target/xtensa: fix flush_window_regs

flush_window_regs uses wrong stack frame to save overflow registers in
call8 and call12 frames, which results in wrong register values in
callers of a function that received a signal.
Reimplement flush_window_regs closely following window overflow
sequence.

Signed-off-by: Max Filippov <address@hidden>


  Commit: 4a6bf7adb92d1b8b7cd3763740b4a5180c0147d5
      
https://github.com/qemu/qemu/commit/4a6bf7adb92d1b8b7cd3763740b4a5180c0147d5
  Author: Max Filippov <address@hidden>
  Date:   2018-03-31 (Sat, 31 Mar 2018)

  Changed paths:
    M linux-user/main.c

  Log Message:
  -----------
  target/xtensa: linux-user: rewind pc for restarted syscall

In case of syscall restart request set pc back to the syscall
instruction.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>


  Commit: 73a988d957b9142e0a005f4dc87944574f02de51
      
https://github.com/qemu/qemu/commit/73a988d957b9142e0a005f4dc87944574f02de51
  Author: Max Filippov <address@hidden>
  Date:   2018-03-31 (Sat, 31 Mar 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: call cpu_copy under clone_lock

cpu_copy adds newly created CPU object to container/machine/unattached,
but does it w/o proper locking. As a result when multiple threads create
threads rapidly QEMU may abort with the following message:

  GLib-CRITICAL **: g_hash_table_iter_next: assertion
  'ri->version == ri->hash_table->version' failed

  ERROR:qemu/qom/object.c:1663:object_get_canonical_path_component:
  code should not be reached

E.g. this issue is observed when running glibc test nptl/tst-eintr1.
Move cpu_copy invocation under clone_lock to fix that.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>


  Commit: a23ea409824afb9bce3a4d54881310757811c218
      
https://github.com/qemu/qemu/commit/a23ea409824afb9bce3a4d54881310757811c218
  Author: Max Filippov <address@hidden>
  Date:   2018-03-31 (Sat, 31 Mar 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix mq_getsetattr implementation

mq_getsetattr implementation does not set errno correctly in case of
error. Also in the presence of both 2nd and 3rd arguments it calls both
mq_getattr and mq_setattr, whereas only the latter call would suffice.

Don't call mq_getattr in the presence of the 2nd argument. Don't copy
output back to user in case of error. Use get_errno to set errno value.

This fixes test rt/tst-mqueue2 from the glibc testsuite.

Cc: Lionel Landwerlin <address@hidden>
Cc: Kirill A. Shutemov <address@hidden>
Cc: Riku Voipio <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Cc: Laurent Vivier <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>


  Commit: a3da8be5126be0d17e8ebc76655f185aeb647f7a
      
https://github.com/qemu/qemu/commit/a3da8be5126be0d17e8ebc76655f185aeb647f7a
  Author: Max Filippov <address@hidden>
  Date:   2018-04-01 (Sun, 01 Apr 2018)

  Changed paths:
    M linux-user/xtensa/target_structs.h

  Log Message:
  -----------
  target/xtensa: linux-user: fix sysv IPC structures

- make target_ipc_perm fields match kernel definitions for xtensa;
- add target_semid64_ds with proper order of times and reserved fields
  for little/big endian specific for xtensa;
- add missing reserved fields after time fields to the target_shmid_ds;
- fix types of shm_cpid, shm_lpid and shm_nattch fields of
  target_shmid_ds to match kernel definitions for xtensa.

These changes fix guest ipcs output and fix glibc testsuite tests
sysvipc/test-sysvsem and sysvipc/test-sysvshm.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>


  Commit: b9f9908e2ddd167eb88ce3457953a30f18d2a7aa
      
https://github.com/qemu/qemu/commit/b9f9908e2ddd167eb88ce3457953a30f18d2a7aa
  Author: Max Filippov <address@hidden>
  Date:   2018-04-01 (Sun, 01 Apr 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix error propagation in clock_gettime

host_to_target_timespec may return error if target address could not be
locked, but it is ignored.
Propagate return value of host_to_target_timespec to the caller of
clock_gettime.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>


  Commit: 12e3340c23972d7de6c2e306bafecd50abcbea1c
      
https://github.com/qemu/qemu/commit/12e3340c23972d7de6c2e306bafecd50abcbea1c
  Author: Max Filippov <address@hidden>
  Date:   2018-04-01 (Sun, 01 Apr 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: implement clock_settime

This fixes glibc testsuite test rt/tst-clock2.

Signed-off-by: Max Filippov <address@hidden>


  Commit: 64a563dd8dd6ca2661d96a2e4b69f0a5465cab94
      
https://github.com/qemu/qemu/commit/64a563dd8dd6ca2661d96a2e4b69f0a5465cab94
  Author: Max Filippov <address@hidden>
  Date:   2018-04-02 (Mon, 02 Apr 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  target/xtensa: linux-user: fix fadvise64 call

fadvise64_64 on xtensa passes advice as the second argument and so must
be handled similar to PPC.

This fixes glibc testsuite tests posix/tst-posix_fadvise and
posix/tst-posix_fadvise64.

Reviewed-by: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>


  Commit: 9abfc88af3ffd3b33c7fab4471da86462ee71d95
      
https://github.com/qemu/qemu/commit/9abfc88af3ffd3b33c7fab4471da86462ee71d95
  Author: Peter Maydell <address@hidden>
  Date:   2018-04-03 (Tue, 03 Apr 2018)

  Changed paths:
    M linux-user/main.c
    M linux-user/signal.c
    M linux-user/syscall.c
    M linux-user/xtensa/target_structs.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/xtensa/tags/20180402-xtensa' into 
staging

xtensa-specific fixes for linux-user:

- fix flushing registers for signal processing in call8 and call12 frames;
- fix PC value for restarted syscalls;
- fix sysv IPC structures;
- fix fadvise64 syscall;

generic fixes for linux-user:

- fix QEMU assertion in multithreaded application by calling cpu_copy
  under clone_lock;
- fix mq_getsetattr implementation;
- fix error propagation in clock_gettime;
- implement clock_settime.

# gpg: Signature made Mon 02 Apr 2018 18:07:08 BST
# gpg:                using RSA key 51F9CC91F83FA044
# gpg: Good signature from "Max Filippov <address@hidden>"
# gpg:                 aka "Max Filippov <address@hidden>"
# gpg:                 aka "Max Filippov <address@hidden>"
# Primary key fingerprint: 2B67 854B 98E5 327D CDEB  17D8 51F9 CC91 F83F A044

* remotes/xtensa/tags/20180402-xtensa:
  target/xtensa: linux-user: fix fadvise64 call
  linux-user: implement clock_settime
  linux-user: fix error propagation in clock_gettime
  target/xtensa: linux-user: fix sysv IPC structures
  linux-user: fix mq_getsetattr implementation
  linux-user: call cpu_copy under clone_lock
  target/xtensa: linux-user: rewind pc for restarted syscall
  target/xtensa: fix flush_window_regs

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


Compare: https://github.com/qemu/qemu/compare/13b65ec54dbf...9abfc88af3ff

reply via email to

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