From patchwork Tue Oct 8 04:45:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 11178771 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E11DC1668 for ; Tue, 8 Oct 2019 04:46:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C796820679 for ; Tue, 8 Oct 2019 04:46:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729426AbfJHEqP (ORCPT ); Tue, 8 Oct 2019 00:46:15 -0400 Received: from mga11.intel.com ([192.55.52.93]:8175 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729285AbfJHEqP (ORCPT ); Tue, 8 Oct 2019 00:46:15 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Oct 2019 21:46:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,269,1566889200"; d="scan'208";a="206566487" Received: from sjchrist-coffee.jf.intel.com ([10.54.74.41]) by fmsmga001.fm.intel.com with ESMTP; 07 Oct 2019 21:46:14 -0700 From: Sean Christopherson To: Jarkko Sakkinen Cc: linux-sgx@vger.kernel.org Subject: [PATCH for_v23 00/16] x86/vdso: sgx: Major vDSO cleanup Date: Mon, 7 Oct 2019 21:45:57 -0700 Message-Id: <20191008044613.12350-1-sean.j.christopherson@intel.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Sender: linux-sgx-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sgx@vger.kernel.org The main purpose of this series is to implement feedback from the original RFC to expand the vDSO[*] that went unaddressed before the expanded function was rushed into v21. The other half of the series is to overhaul the selftest to actually test the exit handler variation of the vDSO, with a bunch of prework to add an assertion framework to standardize the various assertions in the test and improve the readability of the code. The basic ideas for the exit handler subtests are from Cedric's original RFC, but rewritten from scratch to take advantage of the new assertion framework. I haven't yet implemented single-step subtest, ideally that too will get done before v23. [*] https://lkml.kernel.org/r/20190426210017.GA24467@linux.intel.com Sean Christopherson (16): x86/vdso: sgx: Drop the pseudocode "documentation" x86/vdso: sgx: Do not use exception info to pass success/failure x86/vdso: sgx: Rename the enclave exit handler typedef x86/vdso: sgx: Move enclave exit handler declaration to UAPI header x86/vdso: sgx: Add comment regarding kernel-doc shenanigans x86/vdso: sgx: Rewrite __vdso_sgx_enter_enclave() function comment selftests/x86: Fix linker warning in SGX selftest selftests/x86/sgx: Use getauxval() to retrieve the vDSO base address selftests/x86/sgx: Add helper function and macros to assert results selftests/x86/sgx: Handle setup failures via test assertions selftests/x86/sgx: Sanitize the types for sgx_call()'s input params selftests/x86/sgx: Move existing sub-test to a separate helper selftests/x86/sgx: Add a test of the vDSO exception reporting mechanism selftests/x86/sgx: Add test of vDSO with basic exit handler selftests/x86/sgx: Add sub-test for exception behavior with exit handler x86/vdso: sgx: Rework __vdso_sgx_enter_enclave() to prefer "no callback" arch/x86/entry/vdso/vsgx_enter_enclave.S | 228 +++++++------ arch/x86/include/uapi/asm/sgx.h | 18 + tools/testing/selftests/x86/sgx/Makefile | 2 +- tools/testing/selftests/x86/sgx/defines.h | 6 + tools/testing/selftests/x86/sgx/main.c | 384 ++++++++++++++-------- 5 files changed, 387 insertions(+), 251 deletions(-)