Blob Blame History Raw
From fb93d3ff8b63bdfdf88a8f25a715f816a52d5dd8 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Mon, 13 Dec 2021 14:50:06 +1000
Subject: [PATCH] loader/aarch64: attempt to avoid text relocations in the
 unknown code

The commit below added a TEXTREL into the loader library, TEXTRELs
and security people don't get on well, so we'd like to avoid that.

This is my attempt at fixing it, I'm not an aarch64 expert at all,
so I'd really appreciate someone who is to take a look.

Fixes: 4f78f14c0533 ("loader: Add aarch64 unknown ext chain implementation")
---
 loader/unknown_ext_chain_gas_aarch64.S | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/loader/unknown_ext_chain_gas_aarch64.S b/loader/unknown_ext_chain_gas_aarch64.S
index 1e065007d..a1fa46205 100644
--- a/loader/unknown_ext_chain_gas_aarch64.S
+++ b/loader/unknown_ext_chain_gas_aarch64.S
@@ -50,7 +50,8 @@ terminError\num:
     mov     x0, x11                             // Vulkan instance pointer (first arg)
     mov     x1, VK_DEBUG_REPORT_ERROR_BIT_EXT   // The error logging bit (second arg)
     mov     x2, #0                              // Zero (third arg)
-    ldr     x3, =termin_error_string            // The error string (fourth arg)
+    adrp    x9, termin_error_string
+    ldr     x3, [x9, #:lo12:termin_error_string]            // The error string (fourth arg)
     ldr     x4, [x11, x10]                      // The function name (fifth arg)
     bl      loader_log                          // Log the error message before we crash
     mov     x0, #0
-- 
2.33.1