]> xenbits.xensource.com Git - unikraft/libs/musl.git/commitdiff
uk_init_tls: Return tcb pointer in __uk_copy_tls
authorRobert Kuban <robert.kuban@opensynergy.com>
Tue, 16 Aug 2022 18:53:21 +0000 (20:53 +0200)
committerUnikraft <monkey@unikraft.io>
Thu, 24 Nov 2022 19:37:39 +0000 (19:37 +0000)
Translate the tlsp to the tcb pointer before using as TCB.

On x86_64 both pointer are identical, but in aarch64 the tlsp
points into the last 16 bytes of the TCB.

Signed-off-by: Robert Kuban <robert.kuban@opensynergy.com>
Reviewed-by: Eduard Vintilă <eduard.vintila47@gmail.com>
Reviewed-by: Razvan Virtan <virtanrazvan@gmail.com>
Reviewed-by: Razvan Deaconescu <razvand@unikraft.io>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #6

__uk_init_tls.c

index 10c1140b916c8db5b441155bbc72e53815b6348b..6bae322fc522164026d1f92898cc9720ef15f33a 100644 (file)
@@ -94,7 +94,7 @@ void *__uk_copy_tls(unsigned char *mem)
        tls_area = mem;
        ukarch_tls_area_init(tls_area);
 
-       td = (pthread_t) ukarch_tls_tlsp(tls_area);
+       td = (pthread_t) ukarch_tls_tcb_get(ukarch_tls_tlsp(tls_area));
        td->dtv = td->dtv_copy = tls_area;
 
        return td;