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@xxxxxxxxxxxxxxx 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(-) -- 2.22.0