Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Aug 2023 00:51:27 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: cee16ae06de7 - stable/13 - rtld: unlock bind lock when calling into crt __pthread_distribute_static_tls method
Message-ID:  <202308270051.37R0pRbK027424@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=cee16ae06de7c08cf97c918d73cfac33cc056a2d

commit cee16ae06de7c08cf97c918d73cfac33cc056a2d
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-18 19:52:24 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-27 00:50:17 +0000

    rtld: unlock bind lock when calling into crt __pthread_distribute_static_tls method
    
    (cherry picked from commit b1d3e2b771552af071bf0964233cc5a76ea25542)
---
 libexec/rtld-elf/rtld.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index e3f87c6504a5..e8b901bda634 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -5943,8 +5943,10 @@ distribute_static_tls(Objlist *list, RtldLockState *lockstate)
 		obj = elm->obj;
 		if (obj->marker || !obj->tls_static || obj->static_tls_copied)
 			continue;
+		lock_release(rtld_bind_lock, lockstate);
 		distrib(obj->tlsoffset, obj->tlsinit, obj->tlsinitsize,
 		    obj->tlssize);
+		wlock_acquire(rtld_bind_lock, lockstate);
 		obj->static_tls_copied = true;
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308270051.37R0pRbK027424>