qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] daa437: linux-user: Drop unicore32 code


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] daa437: linux-user: Drop unicore32 code
Date: Thu, 15 Mar 2018 11:52:29 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: daa4374a04f9d6f6584f372f532d3e4aa9419255
      
https://github.com/qemu/qemu/commit/daa4374a04f9d6f6584f372f532d3e4aa9419255
  Author: Peter Maydell <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c
    M linux-user/main.c
    M linux-user/qemu.h
    M linux-user/signal.c
    M linux-user/syscall_defs.h
    R linux-user/unicore32/syscall_nr.h
    R linux-user/unicore32/target_cpu.h
    R linux-user/unicore32/target_elf.h
    R linux-user/unicore32/target_signal.h
    R linux-user/unicore32/target_structs.h
    R linux-user/unicore32/target_syscall.h
    R linux-user/unicore32/termbits.h

  Log Message:
  -----------
  linux-user: Drop unicore32 code

We dropped the unicore32-linux-user target in commit 5e2b40f7271cf9
in 2016. Nobody has made any attempt to fix the issues that
caused us to drop it, so remove the associated code.
(The system emulation parts of unicore32 remain.)

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


  Commit: f8b985d65cf67004483816d5afcb7bf686e11702
      
https://github.com/qemu/qemu/commit/f8b985d65cf67004483816d5afcb7bf686e11702
  Author: Peter Maydell <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/signal.c

  Log Message:
  -----------
  linux-user: Remove the unused "not implemented" signal handling stubs

Now we've dropped unicore32, all of the architectures we support
for linux-user implement the signal handling routines. The
dummy "just print a message" versions are unimplemented, so we
can drop them entirely.

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


  Commit: 3ff48453e894990ea6495574037e70ed9b91947e
      
https://github.com/qemu/qemu/commit/3ff48453e894990ea6495574037e70ed9b91947e
  Author: Laurent Vivier <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M scripts/qemu-binfmt-conf.sh

  Log Message:
  -----------
  linux-user: allows to use "--systemd ALL" with qemu-binfmt-conf.sh

qemu-binfmt-conf.sh when it is used with systemd
needs to know for which CPU the systemd-binfmt.service
file must be created (i.e. "--systemd ppc").

But sometime, for instance for test purpose, we need to
create an entry for all known architectures.
This patch entroduce the "ALL" parameter for this purpose.

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


  Commit: d4247ec2d79ef2477cb886fa688706b068119736
      
https://github.com/qemu/qemu/commit/d4247ec2d79ef2477cb886fa688706b068119736
  Author: Shea Levy <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

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

  Log Message:
  -----------
  linux-user: Support f_flags in statfs when available.

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


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

  Changed paths:
    M include/exec/cpu-all.h
    M include/exec/cpu_ldst.h
    M linux-user/mmap.c
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix mmap/munmap/mprotect/mremap/shmat

In linux-user QEMU that runs for a target with TARGET_ABI_BITS bigger
than L1_MAP_ADDR_SPACE_BITS an assertion in page_set_flags fires when
mmap, munmap, mprotect, mremap or shmat is called for an address outside
the guest address space. mmap and mprotect should return ENOMEM in such
case.

Change definition of GUEST_ADDR_MAX to always be the last valid guest
address. Account for this change in open_self_maps.
Add macro guest_addr_valid that verifies if the guest address is valid.
Add function guest_range_valid that verifies if address range is within
guest address space and does not wrap around. Use that macro in
mmap/munmap/mprotect/mremap/shmat for error checking.

Cc: address@hidden
Cc: Riku Voipio <address@hidden>
Cc: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 3c5f6a5f888729f9fbc64211298f7c3e2fb42b64
      
https://github.com/qemu/qemu/commit/3c5f6a5f888729f9fbc64211298f7c3e2fb42b64
  Author: Max Filippov <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix assertion in shmdt

shmdt fails to call mmap_lock/mmap_unlock around page_set_flags,
resulting in the following assertion:
  page_set_flags: Assertion `have_mmap_lock()' failed.

Wrap shmdt internals into mmap_lock/mmap_unlock.

Cc: address@hidden
Cc: Riku Voipio <address@hidden>
Cc: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 78cf339039c325b336442f1d7f3ccc531b22c4a0
      
https://github.com/qemu/qemu/commit/78cf339039c325b336442f1d7f3ccc531b22c4a0
  Author: Max Filippov <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/mmap.c

  Log Message:
  -----------
  linux-user: fix target_mprotect/target_munmap error return values

target_mprotect/target_munmap return value goes through get_errno at the
call site, thus the functions must either set errno to host error code
and return -1 or return negative guest error code. Do the latter.

Cc: address@hidden
Cc: Riku Voipio <address@hidden>
Cc: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 41c97cc022f289d413b6e4518352aed507f5473c
      
https://github.com/qemu/qemu/commit/41c97cc022f289d413b6e4518352aed507f5473c
  Author: Max Filippov <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/mmap.c
    M linux-user/qemu.h

  Log Message:
  -----------
  linux-user: drop unused target_msync function

target_msync is not used, remove its declaration and implementation.

Cc: Riku Voipio <address@hidden>
Cc: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


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

  Changed paths:
    M scripts/qemu-binfmt-conf.sh

  Log Message:
  -----------
  qemu-binfmt-conf.sh: add qemu-xtensa

Register qemu-xtensa and qemu-xtensaeb for transparent linux userspace
emulation.

Cc: Riku Voipio <address@hidden>
Cc: Laurent Vivier <address@hidden>
Signed-off-by: Max Filippov <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 8756e1361d177e91dc6d88f37749b809fd2407fb
      
https://github.com/qemu/qemu/commit/8756e1361d177e91dc6d88f37749b809fd2407fb
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: Use #if to only call validate_guest_space for 32-bit ARM target

Instead of defining a bogus validate_guest_space that always returns 1 on
targets other than 32-bit ARM, use #if blocks to only call it on 32-bit ARM
targets.  This makes the "normal" flow control clearer.

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
[lv: fix condition to "!= 1" as requested by Peter]
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: c3637eaf61c9c4a74edaa078599f349eeefa49c6
      
https://github.com/qemu/qemu/commit/c3637eaf61c9c4a74edaa078599f349eeefa49c6
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: Rename validate_guest_space => init_guest_commpage

init_guest_commpage is a much more honest description of what the function
does.  validate_guest_space not only suggests that the function has no
side-effects, but also introduces confusion as to why it is only needed on
32-bit ARM targets.

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: f2024817548f9538cbe626f88ca9f37ff0f5d468
      
https://github.com/qemu/qemu/commit/f2024817548f9538cbe626f88ca9f37ff0f5d468
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_space: Clean up if we can't initialize the commpage

We'll just exit with an error anyway, so it doesn't really matter, but it
is cleaned up in all of the other places were we error out.

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: e7ea02e62a37ea94a2ee6cc99e7c682ef0e61e9f
      
https://github.com/qemu/qemu/commit/e7ea02e62a37ea94a2ee6cc99e7c682ef0e61e9f
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_space: Correctly handle guest_start in commpage 
initialization

init_guest_commpage  needs to check if the mapped space, which ends at
real_start+real_size overlaps with where it needs to put the commpage,
which is (assuming sane qemu_host_page_size) guest_base + 0xffff000, where
guest_base is real_start - guest_start.

    [guest_base][       0xffff0000      ][commpage]
    [guest_base][guest_start][real_size] [commpage]
    [       real_start      ][real_size] [commpage]
                                  ^
                           fail if this gap < 0

Since init_guest_commpage wants to do everything relative to guest_base
(rather than real_start), it obviously needs to be comparing 0xffff0000
against guest_start+real_size, not just real_size.

This bug has been present since 806d102141b99d4f1e55a97d68b7ea8c8ba3129f in
2012, but guest_start is usually 0, and prior to v2.11 real_size was
usually much smaller than 0xffff0000, so it was uncommon for it to have
made a difference.

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 293f20600896d18c05880fb003f08d281b3156cb
      
https://github.com/qemu/qemu/commit/293f20600896d18c05880fb003f08d281b3156cb
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_space: Clarify page alignment logic

There are 3 parts to this change:
 - Add a comment showing the relative sizes and positions of the blocks of
   memory
 - introduce and use new aligned_{start,size} instead of adjusting
   real_{start_size}
 - When we clean up (on failure), munmap(real_start, real_size) instead of
   munmap(aligned_start, aligned_size).  It *shouldn't* make any
   difference, but I will admit that this does mean we are making the
   syscall with different values, so this isn't quite a no-op patch.

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 955e304f6fc1703edafed69b299a8ca39233f865
      
https://github.com/qemu/qemu/commit/955e304f6fc1703edafed69b299a8ca39233f865
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-09 (Fri, 09 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_commpage: Add a comment about size check

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 7ad75eea86e5e9a327a1f64a3e8ec6dbb6534d1e
      
https://github.com/qemu/qemu/commit/7ad75eea86e5e9a327a1f64a3e8ec6dbb6534d1e
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_space: Clean up control flow a bit

Instead of doing
   if (check1) {
      if (check2) {
         success;
      }
  }
   retry;

Do a clearer
   if (!check1) {
     goto try_again;
  }
   if (!check2) {
     goto try_again;
  }
   success;

    try_again:
  retry;

Besides being clearer, this makes it easier to insert more checks that
need to trigger a retry on check failure, or rearrange them, or anything
like that.

Because some indentation is changing, "ignore space change" may be useful
for viewing this patch.

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
[lv: modified to try again fi valid == 0, not valid == -1 (error case)]
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: aac362e46f13305fd9b4abfe7d0068595d4555f2
      
https://github.com/qemu/qemu/commit/aac362e46f13305fd9b4abfe7d0068595d4555f2
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_space: Don't try to align if we'll reject it

If the ensure-alignment code gets triggered, then the
"if (host_start && real_start != current_start)" check will always trigger,
so save 2 syscalls and put that check first.

Note that we can't just switch to using MAP_FIXED for that check, because
then we couldn't differentiate between a failure because "there isn't
enough space" and "there isn't enough space *here*".

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 8c17d862b3cefed23a62c4e09d4b3f1f04a38631
      
https://github.com/qemu/qemu/commit/8c17d862b3cefed23a62c4e09d4b3f1f04a38631
  Author: Luke Shumaker <address@hidden>
  Date:   2018-03-13 (Tue, 13 Mar 2018)

  Changed paths:
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: init_guest_space: Add a comment about search strategy

Signed-off-by: Luke Shumaker <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>


  Commit: 55901900ec69d6fd6f332003d8ab81b2f8a38529
      
https://github.com/qemu/qemu/commit/55901900ec69d6fd6f332003d8ab81b2f8a38529
  Author: Peter Maydell <address@hidden>
  Date:   2018-03-15 (Thu, 15 Mar 2018)

  Changed paths:
    M include/exec/cpu-all.h
    M include/exec/cpu_ldst.h
    M linux-user/elfload.c
    M linux-user/main.c
    M linux-user/mmap.c
    M linux-user/qemu.h
    M linux-user/signal.c
    M linux-user/syscall.c
    M linux-user/syscall_defs.h
    R linux-user/unicore32/syscall_nr.h
    R linux-user/unicore32/target_cpu.h
    R linux-user/unicore32/target_elf.h
    R linux-user/unicore32/target_signal.h
    R linux-user/unicore32/target_structs.h
    R linux-user/unicore32/target_syscall.h
    R linux-user/unicore32/termbits.h
    M scripts/qemu-binfmt-conf.sh

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

# gpg: Signature made Tue 13 Mar 2018 17:33:03 GMT
# gpg:                using RSA key F30C38BD3F2FBE3C
# 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-2.12-pull-request:
  linux-user: init_guest_space: Add a comment about search strategy
  linux-user: init_guest_space: Don't try to align if we'll reject it
  linux-user: init_guest_space: Clean up control flow a bit
  linux-user: init_guest_commpage: Add a comment about size check
  linux-user: init_guest_space: Clarify page alignment logic
  linux-user: init_guest_space: Correctly handle guest_start in commpage 
initialization
  linux-user: init_guest_space: Clean up if we can't initialize the commpage
  linux-user: Rename validate_guest_space => init_guest_commpage
  linux-user: Use #if to only call validate_guest_space for 32-bit ARM target
  qemu-binfmt-conf.sh: add qemu-xtensa
  linux-user: drop unused target_msync function
  linux-user: fix target_mprotect/target_munmap error return values
  linux-user: fix assertion in shmdt
  linux-user: fix mmap/munmap/mprotect/mremap/shmat
  linux-user: Support f_flags in statfs when available.
  linux-user: allows to use "--systemd ALL" with qemu-binfmt-conf.sh
  linux-user: Remove the unused "not implemented" signal handling stubs
  linux-user: Drop unicore32 code

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


Compare: https://github.com/qemu/qemu/compare/5bdd374347b8...55901900ec69

reply via email to

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