qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 6fab0c: target/hppa: Fix proberi instruction


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 6fab0c: target/hppa: Fix proberi instruction emulation for...
Date: Fri, 19 Aug 2022 09:36:14 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 6fab0c182dabaca5b3d56e60a8de3122ce9afbea
      
https://github.com/qemu/qemu/commit/6fab0c182dabaca5b3d56e60a8de3122ce9afbea
  Author: Helge Deller <deller@gmx.de>
  Date:   2022-08-19 (Fri, 19 Aug 2022)

  Changed paths:
    M target/hppa/op_helper.c

  Log Message:
  -----------
  target/hppa: Fix proberi instruction emulation for linux-user

The proberi assembler instruction checks the read/write access rights
for the page of a given address and shall return a value of 1 if the
test succeeds and a value of 0 on failure in the target register.

But when run in linux-user mode, qemu currently simply returns the
return code of page_check_range() which returns 0 on success and -1 on
failure, which is the opposite of what proberi should return.

Fix it by checking the return code of page_check_range() and return the
expected return value.

The easiest way to reproduce the issue is by running
"/lib/ld.so.1 --version" in a chroot which fails without this patch.
At startup of ld.so the __canonicalize_funcptr_for_compare() function is
used to resolve the function address out of a function descriptor, which
fails because proberi (due to the wrong return code) seems to indicate
that the given address isn't accessible.

Signed-off-by: Helge Deller <deller@gmx.de>


  Commit: ba58ccbef60338d0b7334c714589a6423a3e7f91
      
https://github.com/qemu/qemu/commit/ba58ccbef60338d0b7334c714589a6423a3e7f91
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2022-08-19 (Fri, 19 Aug 2022)

  Changed paths:
    M target/hppa/op_helper.c

  Log Message:
  -----------
  Merge tag 'for-7.1-hppa' of https://github.com/hdeller/qemu-hppa into staging

target/hppa: Fix proberi instruction emulation for linux-user

# -----BEGIN PGP SIGNATURE-----
#
# iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCYv+X7AAKCRD3ErUQojoP
# XyGaAQCUaZmTFIEMz7TOjPCz1ix8MaLTrQH8B/gAt3Ss9hXvKgD/ZtOItG3Iz8y0
# tHslvPvJKHlr8s5Ol9rxRPzRG7iigAo=
# =DQho
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 19 Aug 2022 07:02:20 AM PDT
# gpg:                using EDDSA key BCE9123E1AD29F07C049BBDEF712B510A23A0F5F
# gpg: Good signature from "Helge Deller <deller@gmx.de>" [unknown]
# gpg:                 aka "Helge Deller <deller@kernel.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 4544 8228 2CD9 10DB EF3D  25F8 3E5F 3D04 A7A2 4603
#      Subkey fingerprint: BCE9 123E 1AD2 9F07 C049  BBDE F712 B510 A23A 0F5F

* tag 'for-7.1-hppa' of https://github.com/hdeller/qemu-hppa:
  target/hppa: Fix proberi instruction emulation for linux-user

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/a78241a62b55...ba58ccbef603



reply via email to

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