All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Subject: [PULL 05/20] tests/tcg/aarch64: Add pauth-4
Date: Thu, 23 Jan 2020 15:30:26 +0000	[thread overview]
Message-ID: <20200123153041.4248-6-peter.maydell@linaro.org> (raw)
In-Reply-To: <20200123153041.4248-1-peter.maydell@linaro.org>

From: Richard Henderson <richard.henderson@linaro.org>

Perform the set of operations and test described in LP 1859713.

Suggested-by: Adrien GRASSEIN <adrien.grassein@smile.fr>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200116230809.19078-5-richard.henderson@linaro.org
[PMM: fixed hard-coded tabs]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 tests/tcg/aarch64/Makefile.target |  2 +-
 tests/tcg/aarch64/pauth-4.c       | 25 +++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
 create mode 100644 tests/tcg/aarch64/pauth-4.c

diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
index 374c8d6830f..efa67cf1e9e 100644
--- a/tests/tcg/aarch64/Makefile.target
+++ b/tests/tcg/aarch64/Makefile.target
@@ -18,7 +18,7 @@ run-fcvt: fcvt
 	$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
 
 # Pauth Tests
-AARCH64_TESTS += pauth-1 pauth-2
+AARCH64_TESTS += pauth-1 pauth-2 pauth-4
 run-pauth-%: QEMU_OPTS += -cpu max
 pauth-%: CFLAGS += -march=armv8.3-a
 
diff --git a/tests/tcg/aarch64/pauth-4.c b/tests/tcg/aarch64/pauth-4.c
new file mode 100644
index 00000000000..1040e92aec3
--- /dev/null
+++ b/tests/tcg/aarch64/pauth-4.c
@@ -0,0 +1,25 @@
+#include <stdint.h>
+#include <assert.h>
+
+int main()
+{
+  uintptr_t x, y;
+
+  asm("mov %0, lr\n\t"
+      "pacia %0, sp\n\t"        /* sigill if pauth not supported */
+      "eor %0, %0, #4\n\t"      /* corrupt single bit */
+      "mov %1, %0\n\t"
+      "autia %1, sp\n\t"        /* validate corrupted pointer */
+      "xpaci %0\n\t"            /* strip pac from corrupted pointer */
+      : "=r"(x), "=r"(y));
+
+  /*
+   * Once stripped, the corrupted pointer is of the form 0x0000...wxyz.
+   * We expect the autia to indicate failure, producing a pointer of the
+   * form 0x000e....wxyz.  Use xpaci and != for the test, rather than
+   * extracting explicit bits from the top, because the location of the
+   * error code "e" depends on the configuration of virtual memory.
+   */
+  assert(x != y);
+  return 0;
+}
-- 
2.20.1



  parent reply	other threads:[~2020-01-23 17:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-23 15:30 [PULL 00/20] target-arm queue Peter Maydell
2020-01-23 15:30 ` [PULL 01/20] target/arm: add PMU feature to cortex-r5 and cortex-r5f Peter Maydell
2020-01-23 15:30 ` [PULL 02/20] target/arm: Fix PAuth sbox functions Peter Maydell
2020-01-23 15:30 ` [PULL 03/20] tests/tcg/aarch64: Fix compilation parameters for pauth-% Peter Maydell
2020-01-23 15:30 ` [PULL 04/20] tests/tcg/aarch64: Add pauth-3 Peter Maydell
2020-01-23 15:30 ` Peter Maydell [this message]
2020-01-23 15:30 ` [PULL 06/20] hw/acpi: Remove extra indent in ACPI GED hotplug cb Peter Maydell
2020-01-23 15:30 ` [PULL 07/20] hw/arm: Use helper function to trigger hotplug handler plug Peter Maydell
2020-01-23 15:30 ` [PULL 08/20] qemu-nbd: Convert invocation documentation to rST Peter Maydell
2020-01-23 15:30 ` [PULL 09/20] docs: Create stub system manual Peter Maydell
2020-01-23 15:30 ` [PULL 10/20] qemu-block-drivers: Convert to rST Peter Maydell
2020-01-23 15:30 ` [PULL 11/20] target/arm/arch_dump: Add SVE notes Peter Maydell
2020-01-23 15:30 ` [PULL 12/20] hw/misc/stm32f4xx_syscfg: Fix copy/paste error Peter Maydell
2020-01-23 15:30 ` [PULL 13/20] dma/pl330: Convert to support tracing Peter Maydell
2020-01-23 15:30 ` [PULL 14/20] hw/core/or-irq: Increase limit of or-lines to 48 Peter Maydell
2020-01-23 15:30 ` [PULL 15/20] hw/arm/exynos4210: Fix DMA initialization Peter Maydell
2020-01-23 15:30 ` [PULL 16/20] hw/char/exynos4210_uart: Convert to support tracing Peter Maydell
2020-01-23 15:30 ` [PULL 17/20] hw/char/exynos4210_uart: Implement post_load function Peter Maydell
2020-01-23 15:30 ` [PULL 18/20] hw/char/exynos4210_uart: Implement Rx FIFO level triggers and timeouts Peter Maydell
2020-01-23 15:30 ` [PULL 19/20] hw/char/exynos4210_uart: Add receive DMA support Peter Maydell
2020-01-23 15:30 ` [PULL 20/20] hw/arm/exynos4210: Connect serial port DMA busy signals with pl330 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200123153041.4248-6-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.