arm64: insn: Report PAC and BTI instructions as skippable
authorMark Brown <broonie@kernel.org>
Mon, 4 May 2020 13:13:26 +0000 (14:13 +0100)
committerWill Deacon <will@kernel.org>
Mon, 4 May 2020 15:06:29 +0000 (16:06 +0100)
The PAC and BTI instructions can be safely skipped so report them as
such, allowing them to be probed.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20200504131326.18290-5-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/insn.c

index 15c3f0643e3b23df576b0bbbfe0ec7d6260c3a95..6439af794ec46ed9a1fc1e2a3dac2f884a9aa919 100644 (file)
@@ -57,6 +57,23 @@ bool __kprobes aarch64_insn_is_steppable_hint(u32 insn)
                return false;
 
        switch (insn & 0xFE0) {
+       case AARCH64_INSN_HINT_XPACLRI:
+       case AARCH64_INSN_HINT_PACIA_1716:
+       case AARCH64_INSN_HINT_PACIB_1716:
+       case AARCH64_INSN_HINT_AUTIA_1716:
+       case AARCH64_INSN_HINT_AUTIB_1716:
+       case AARCH64_INSN_HINT_PACIAZ:
+       case AARCH64_INSN_HINT_PACIASP:
+       case AARCH64_INSN_HINT_PACIBZ:
+       case AARCH64_INSN_HINT_PACIBSP:
+       case AARCH64_INSN_HINT_AUTIAZ:
+       case AARCH64_INSN_HINT_AUTIASP:
+       case AARCH64_INSN_HINT_AUTIBZ:
+       case AARCH64_INSN_HINT_AUTIBSP:
+       case AARCH64_INSN_HINT_BTI:
+       case AARCH64_INSN_HINT_BTIC:
+       case AARCH64_INSN_HINT_BTIJ:
+       case AARCH64_INSN_HINT_BTIJC:
        case AARCH64_INSN_HINT_NOP:
                return true;
        default: