Simplify the sgx code implemntation by using library function getauxval() instead of a custom function to get the base address of vDSO.
Signed-off-by: Tianjia Zhang tianjia.zhang@linux.alibaba.com Reviewed-by: Jarkko Sakkinen jarkko@kernel.org Acked-by: Shuah Khan skhan@linuxfoundation.org --- tools/testing/selftests/sgx/main.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-)
diff --git a/tools/testing/selftests/sgx/main.c b/tools/testing/selftests/sgx/main.c index 724cec700926..5167505fbb46 100644 --- a/tools/testing/selftests/sgx/main.c +++ b/tools/testing/selftests/sgx/main.c @@ -15,6 +15,7 @@ #include <sys/stat.h> #include <sys/time.h> #include <sys/types.h> +#include <sys/auxv.h> #include "defines.h" #include "main.h" #include "../kselftest.h" @@ -28,24 +29,6 @@ struct vdso_symtab { Elf64_Word *elf_hashtab; };
-static void *vdso_get_base_addr(char *envp[]) -{ - Elf64_auxv_t *auxv; - int i; - - for (i = 0; envp[i]; i++) - ; - - auxv = (Elf64_auxv_t *)&envp[i + 1]; - - for (i = 0; auxv[i].a_type != AT_NULL; i++) { - if (auxv[i].a_type == AT_SYSINFO_EHDR) - return (void *)auxv[i].a_un.a_val; - } - - return NULL; -} - static Elf64_Dyn *vdso_get_dyntab(void *addr) { Elf64_Ehdr *ehdr = addr; @@ -162,7 +145,7 @@ static int user_handler(long rdi, long rsi, long rdx, long ursp, long r8, long r return 0; }
-int main(int argc, char *argv[], char *envp[]) +int main(int argc, char *argv[]) { struct sgx_enclave_run run; struct vdso_symtab symtab; @@ -203,7 +186,8 @@ int main(int argc, char *argv[], char *envp[]) memset(&run, 0, sizeof(run)); run.tcs = encl.encl_base;
- addr = vdso_get_base_addr(envp); + /* Get vDSO base address */ + addr = (void *)getauxval(AT_SYSINFO_EHDR); if (!addr) goto err;
On Sun, Mar 14, 2021 at 07:16:21PM +0800, Tianjia Zhang wrote:
Simplify the sgx code implemntation by using library function getauxval() instead of a custom function to get the base address of vDSO.
Signed-off-by: Tianjia Zhang tianjia.zhang@linux.alibaba.com Reviewed-by: Jarkko Sakkinen jarkko@kernel.org Acked-by: Shuah Khan skhan@linuxfoundation.org
Shuah, Boris, which tree this should be picked?
/Jarkko
Hi,
On 3/15/21 9:02 PM, Jarkko Sakkinen wrote:
On Sun, Mar 14, 2021 at 07:16:21PM +0800, Tianjia Zhang wrote:
Simplify the sgx code implemntation by using library function getauxval() instead of a custom function to get the base address of vDSO.
Signed-off-by: Tianjia Zhang tianjia.zhang@linux.alibaba.com Reviewed-by: Jarkko Sakkinen jarkko@kernel.org Acked-by: Shuah Khan skhan@linuxfoundation.org
Shuah, Boris, which tree this should be picked?
/Jarkko
Take time to look at this.
Best regards, Tianjia
On Tue, Mar 23, 2021 at 11:08:25AM +0800, Tianjia Zhang wrote:
Take time to look at this.
A "please" wouldn't hurt.
Hi,
On 3/24/21 2:51 AM, Borislav Petkov wrote:
On Tue, Mar 23, 2021 at 11:08:25AM +0800, Tianjia Zhang wrote:
Take time to look at this.
A "please" wouldn't hurt.
I'm very sorry that my mistake caused your hurt. Please take time to look at this, which tree this should be picked?
Best regards, Tianjia
On Wed, Mar 24, 2021 at 05:18:03PM +0800, Tianjia Zhang wrote:
I'm very sorry that my mistake caused your hurt.
You'd have to do a lot more to cause hurt. :-)
Please take time to look at this, which tree this should be picked?
Sure.
Thx.
linux-kselftest-mirror@lists.linaro.org