Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qemu/qemu
base: 3ee44ec72753
Choose a base ref
...
head repository: qemu/qemu
compare: a279ca4ea073
Choose a head ref
  • 6 commits
  • 6 files changed
  • 2 contributors

Commits on Jul 25, 2023

  1. hw/arm/smmu: Handle big-endian hosts correctly

    The implementation of the SMMUv3 has multiple places where it reads a
    data structure from the guest and directly operates on it without
    doing a guest-to-host endianness conversion.  Since all SMMU data
    structures are little-endian, this means that the SMMU doesn't work
    on a big-endian host.  In particular, this causes the Avocado test
      machine_aarch64_virt.py:Aarch64VirtMachine.test_alpine_virt_tcg_gic_max
    to fail on an s390x host.
    
    Add appropriate byte-swapping on reads and writes of guest in-memory
    data structures so that the device works correctly on big-endian
    hosts.
    
    As part of this we constrain queue_read() to operate only on Cmd
    structs and queue_write() on Evt structs, because in practice these
    are the only data structures the two functions are used with, and we
    need to know what the data structure is to be able to byte-swap its
    parts correctly.
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Tested-by: Thomas Huth <thuth@redhat.com>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: Eric Auger <eric.auger@redhat.com>
    Message-id: 20230717132641.764660-1-peter.maydell@linaro.org
    Cc: qemu-stable@nongnu.org
    pm215 committed Jul 25, 2023
    Copy the full SHA
    c644554 View commit details
    Browse the repository at this point in the history
  2. scripts/git-submodule.sh: Don't rely on non-POSIX 'read' behaviour

    The POSIX definition of the 'read' utility requires that you
    specify the variable name to set; omitting the name and
    having it default to 'REPLY' is a bashism. If your system
    sh is dash, then it will print an error message during build:
    
    qemu/pc-bios/s390-ccw/../../scripts/git-submodule.sh: 106: read: arg count
    
    Specify the variable name explicitly.
    
    Fixes: fdb8fd8 ("git-submodule: allow partial update of .git-submodule-status")
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Message-id: 20230720153038.1587196-1-peter.maydell@linaro.org
    pm215 committed Jul 25, 2023
    Copy the full SHA
    f9540bb View commit details
    Browse the repository at this point in the history
  3. target/arm: Special case M-profile in debug_helper.c code

    A lot of the code called from helper_exception_bkpt_insn() is written
    assuming A-profile, but we will also call this helper on M-profile
    CPUs when they execute a BKPT insn.  This used to work by accident,
    but recent changes mean that we will hit an assert when some of this
    code calls down into lower level functions that end up calling
    arm_security_space_below_el3(), arm_el_is_aa64(), and other functions
    that now explicitly assert that the guest CPU is not M-profile.
    
    Handle M-profile directly to avoid the assertions:
     * in arm_debug_target_el(), M-profile debug exceptions always
       go to EL1
     * in arm_debug_exception_fsr(), M-profile always uses the short
       format FSR (compare commit d7fe699, though in this case
       the code in arm_v7m_cpu_do_interrupt() does not need to
       look at the FSR value at all)
    
    Cc: qemu-stable@nongnu.org
    Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1775
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20230721143239.1753066-1-peter.maydell@linaro.org
    pm215 committed Jul 25, 2023
    Copy the full SHA
    5d78893 View commit details
    Browse the repository at this point in the history
  4. For curses display, recognize a few more control keys

    The curses display handles most control-X keys, and translates
    them into their corresponding keycode.  Here we recognize
    a few that are missing, Ctrl-@ (null), Ctrl-\ (backslash),
    Ctrl-] (right bracket), Ctrl-^ (caret), Ctrl-_ (underscore).
    
    Signed-off-by: Sean Estabrooks <sean.estabrooks@gmail.com>
    Message-id: CAHyVn3Bh9CRgDuOmf7G7Ngwamu8d4cVozAcB2i4ymnnggBXNmg@mail.gmail.com
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    loops authored and pm215 committed Jul 25, 2023
    Copy the full SHA
    9b57954 View commit details
    Browse the repository at this point in the history
  5. tests/decode: Suppress "error: " string for expected-failure tests

    The "expected failure" tests for decodetree result in the
    error messages from decodetree ending up in logs and in
    V=1 output:
    
    >>> MALLOC_PERTURB_=226 /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/x86/pyvenv/bin/python3 /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/scripts/decodetree.py --output-null --test-for-error /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/x86/../../tests/decode/err_argset1.decode
    ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ✀  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
    /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/x86/../../tests/decode/err_argset1.decode:5: error: duplicate argument "a"
    ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
     1/44 qemu:decodetree / err_argset1                OK              0.05s
    
    This then produces false positives when scanning the
    logfiles for strings like "error: ".
    
    For the expected-failure tests, make decodetree print
    "detected:" instead of "error:".
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
    Message-id: 20230720131521.1325905-1-peter.maydell@linaro.org
    pm215 committed Jul 25, 2023
    Copy the full SHA
    78cc903 View commit details
    Browse the repository at this point in the history
  6. Merge tag 'pull-target-arm-20230725' of https://git.linaro.org/people…

    …/pmaydell/qemu-arm into staging
    
    target-arm queue:
     * tests/decode: Suppress "error: " string for expected-failure tests
     * ui/curses: For curses display, recognize a few more control keys
     * target/arm: Special case M-profile in debug_helper.c code
     * scripts/git-submodule.sh: Don't rely on non-POSIX 'read' behaviour
     * hw/arm/smmu: Handle big-endian hosts correctly
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmS/ot8ZHHBldGVyLm1h
    # eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3slqEACaLJwIYl1bJBfCda2u53+C
    # q20t50SQjkvV2CSW6A9uOHPPahKUcxAXh6K+d54BhzD6Dsrv5g1rpo/2fnNhHDSG
    # 7fHlla+fPnywmAOahE2FPUw4pckRX1tpPIM1RDjM9szLYqkJlShKYP28QsLu1Eku
    # bnTty6OcId5hAZILag53QLwL9EYsVYoCEe6xRcgY3He0UZcCEisCUdfeCXEN1Uc8
    # 57wd+q3KNUTgOScqmDJRAH2NaET0UOYlUvQGVu8/Bh3t0huQCtfyT4gc8z7v/TZ8
    # 2PfI6bFb9nei09avxhBMN9Nu7BVD6eHBkAAe4JHDBhkJKCZn+LASDCMUAFPrFD2V
    # NeIObNHBMaE9FqIG/SZxf7kEOaFcUwt4GrVfQNguaqiXIwALsfT/jiX4r+jXX4WS
    # ii0mdoS2ZuAcRtUhTA7S6x44B3wa47sidSogoe3t2k8ObYB/AZ34F1cSZDgEmIG7
    # nobJE2OgzSRMWUHXhCUEzGvn8MMPeI0HQmKr4sOD6CnlqHIzLZDH4Jx0DL4yvoyc
    # XLs0D2G4yscUTtWh15R/nTWTJKxjumbs05bqwRKLTMsVj6kpDDY/EqhHMvB6Xm70
    # z+xDGki9xsBOTGRO7GdqGlWEKfnwUIPjipwy9crhsjSe121XrP8uwmmDBL1tOLgc
    # L+geqtruzJgFmo3rOBGxXA==
    # =4paq
    # -----END PGP SIGNATURE-----
    # gpg: Signature made Tue 25 Jul 2023 11:24:31 BST
    # gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
    # gpg:                issuer "peter.maydell@linaro.org"
    # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate]
    # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>" [ultimate]
    # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate]
    # gpg:                 aka "Peter Maydell <peter@archaic.org.uk>" [ultimate]
    # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE
    
    * tag 'pull-target-arm-20230725' of https://git.linaro.org/people/pmaydell/qemu-arm:
      tests/decode: Suppress "error: " string for expected-failure tests
      For curses display, recognize a few more control keys
      target/arm: Special case M-profile in debug_helper.c code
      scripts/git-submodule.sh: Don't rely on non-POSIX 'read' behaviour
      hw/arm/smmu: Handle big-endian hosts correctly
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Jul 25, 2023
    Copy the full SHA
    a279ca4 View commit details
    Browse the repository at this point in the history