All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jo Van Bulck <jo.vanbulck@cs.kuleuven.be>
To: jarkko@kernel.org, kai.huang@intel.com,
	linux-sgx@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: dave.hansen@linux.intel.com, Jo Van Bulck <jo.vanbulck@cs.kuleuven.be>
Subject: [PATCH 6/8] selftests/sgx: Ensure expected enclave data buffer size and placement
Date: Tue,  8 Aug 2023 12:31:43 -0700	[thread overview]
Message-ID: <20230808193145.8860-7-jo.vanbulck@cs.kuleuven.be> (raw)
In-Reply-To: <20230808193145.8860-1-jo.vanbulck@cs.kuleuven.be>

Ensure the compiler respects the size and placement of encl_buffer as
expected by the external tests manipulating page permissions:

1. Declare encl_buffer as global, in order to ensure that it is not
   optimized away by the compiler, even when not used entirely by the test
   enclave code.

2. Place encl_buffer in a separate section that is explicitly placed
   at the start of the .data segment in the linker script to avoid the
   compiler placing it somewhere else in .data.

Link: https://lore.kernel.org/all/a2732938-f3db-a0af-3d68-a18060f66e79@cs.kuleuven.be/
Signed-off-by: Jo Van Bulck <jo.vanbulck@cs.kuleuven.be>
---
 tools/testing/selftests/sgx/test_encl.c   | 9 +++++----
 tools/testing/selftests/sgx/test_encl.lds | 1 +
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/tools/testing/selftests/sgx/test_encl.c b/tools/testing/selftests/sgx/test_encl.c
index 5b758eaf808c..02a9e8c55e82 100644
--- a/tools/testing/selftests/sgx/test_encl.c
+++ b/tools/testing/selftests/sgx/test_encl.c
@@ -5,11 +5,12 @@
 #include "defines.h"
 
 /*
- * Data buffer spanning two pages that will be placed first in .data
- * segment. Even if not used internally the second page is needed by
- * external test manipulating page permissions.
+ * Data buffer spanning two pages that will be placed first in the .data
+ * segment via the linker script. Even if not used internally the second page
+ * is needed by external test manipulating page permissions, so do not declare
+ * encl_buffer as static to make sure it is entirely preserved by the compiler.
  */
-static uint8_t encl_buffer[8192] = { 1 };
+uint8_t __attribute__((section(".data.encl_buffer"))) encl_buffer[8192];
 
 enum sgx_enclu_function {
 	EACCEPT = 0x5,
diff --git a/tools/testing/selftests/sgx/test_encl.lds b/tools/testing/selftests/sgx/test_encl.lds
index 27c2527ecbc4..2ec29340ba94 100644
--- a/tools/testing/selftests/sgx/test_encl.lds
+++ b/tools/testing/selftests/sgx/test_encl.lds
@@ -24,6 +24,7 @@ SECTIONS
 	} : text
 
 	.data : {
+		*(.data.encl_buffer)
 		*(.data*)
 	} : data
 
-- 
2.34.1


  parent reply	other threads:[~2023-08-08 21:20 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-08 19:31 [PATCH v2 0/8] selftests/sgx: Fix compilation errors Jo Van Bulck
2023-08-08 19:31 ` [PATCH 1/8] selftests/sgx: Fix uninitialized pointer dereference in error path Jo Van Bulck
2023-08-10 19:15   ` Jarkko Sakkinen
2023-08-18 11:30   ` Huang, Kai
2023-08-08 19:31 ` [PATCH 2/8] selftests/sgx: Produce static-pie executable for test enclave Jo Van Bulck
2023-08-10 19:22   ` Jarkko Sakkinen
2023-08-08 19:31 ` [PATCH 3/8] selftests/sgx: Handle relocations in " Jo Van Bulck
2023-08-10 20:32   ` Jarkko Sakkinen
2023-08-19  0:32     ` Jo Van Bulck
2023-08-22 10:07       ` Jarkko Sakkinen
2023-08-08 19:31 ` [PATCH 4/8] selftests/sgx: Fix linker script asserts Jo Van Bulck
2023-08-08 19:31 ` [PATCH 5/8] selftests/sgx: Include memory clobber for inline asm in test enclave Jo Van Bulck
2023-08-18 11:31   ` Huang, Kai
2023-08-08 19:31 ` Jo Van Bulck [this message]
2023-08-18 13:10   ` [PATCH 6/8] selftests/sgx: Ensure expected enclave data buffer size and placement Huang, Kai
2023-08-19  1:09     ` Jo Van Bulck
2023-08-08 19:31 ` [PATCH 7/8] selftests/sgx: Separate linker options Jo Van Bulck
2023-08-08 19:31 ` [PATCH 8/8] selftests/sgx: Specify freestanding environment for enclave compilation Jo Van Bulck

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=20230808193145.8860-7-jo.vanbulck@cs.kuleuven.be \
    --to=jo.vanbulck@cs.kuleuven.be \
    --cc=dave.hansen@linux.intel.com \
    --cc=jarkko@kernel.org \
    --cc=kai.huang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sgx@vger.kernel.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.