From nobody Thu May 29 16:07:30 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b7WVB53FGz5x9m4; Thu, 29 May 2025 16:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b7WVB3dnWz3g9G; Thu, 29 May 2025 16:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748534850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b6fWrrUUT35RlCubHOHM6zeXka9ELz0RVlNO6lCe9hA=; b=cDINlggh+e+D2NySp4lE6kzbV1ipja3nom2qOfd+49BjL7BpXNBpGyir1GXcvXsK837tKY sGzTD0BrJUz9VMUiaJqLHQOYSJYGzzwiC1XMuek0CP1H+w6fNnIjO825+z5imMI3Z3bLcl z7OENNqqyYuObSu20/BonpUEtIUCTzupEu541kAkt9uuwGeG5LD/PjVaHtg1D49McANjsO s7Uza7C1fgtcai+f5rbdXxFjUVMxt8cHrIXi2BB1UpSAvO4FKLYJ7/SoaICZtaUXnoMWvf DM/JXjXsrzz+XZiKmyaWlqwQ26McG4S4O3fwT5ylRFyq4YNTP/BCBmf1hx370A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748534850; a=rsa-sha256; cv=none; b=rYw2h6lFFyNVX4jKYWnIqwhsZ9AzrejEz96ySe5F8XKCC+9K/Qg5JG4zrVrY3lWrFSTDGy oRVnD77ZfhXpNVER3rLV9U8NLXeKBXx//AsUbudF9vw/gJ0Uzy0IMntPQoAqQOtBejEUUa UkLqvRb+V0lNP/tnTBfiG7eQDGQoINgKsggI8zF+ZCpaAE33yiE/314i5p4AnapyXnQ/4F +HnfMAouqLgW87Jf4UsjQnJ1hG8oC3UYosEVrtxpzfIlzksuouZkK+y7rXEyRvRIQrxv7u +exl2LpFddIdcWAB4NM8bt3jZDJPZEGL7DPq1QSqqm5bKNr9PIgaQTVwYASu7A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1748534850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b6fWrrUUT35RlCubHOHM6zeXka9ELz0RVlNO6lCe9hA=; b=TIETSA1vfIbf5/zhzRUuhlL2/Ot8at8zymLcaYEJnQLH3h1Cw0xOA5v4Y0Tsy7R1DjGNZL h3vldIr+hMFtwuNep/IvDJrTU2cBA/ICK3NR35JaUjm9MkthhlWqYd4wJaqzKKuTDh7peS u5z1PjDm/rHlGXQXLYbCSibkvu4UFxdinDUKt2ww/ER1SqTQ7o13SJAAw6RcIiRXFNJtFX cWC7fvuQoJ2lfRUln0VlgsdFUctKBImFDbu86lZTLGNK7MFR2ynqkz00Ovn77L+DqTvEUW Nn+wuTPMLAbdvL744IHxsUperu3p+hXDDUNMYLSrNgRkfiLy6kzIWML6ITr8Vw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4b7WVB2s8yz1Rrp; Thu, 29 May 2025 16:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54TG7ULp000479; Thu, 29 May 2025 16:07:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54TG7Uc1000476; Thu, 29 May 2025 16:07:30 GMT (envelope-from git) Date: Thu, 29 May 2025 16:07:30 GMT Message-Id: <202505291607.54TG7Uc1000476@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jessica Clarke Subject: git: 48fd084579af - main - rtld-elf: Pass TCB to allocate_module_tls to avoid re-getting List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 48fd084579af7604e934b827ef473194d3d5e3ba Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=48fd084579af7604e934b827ef473194d3d5e3ba commit 48fd084579af7604e934b827ef473194d3d5e3ba Author: Jessica Clarke AuthorDate: 2025-05-29 16:07:02 +0000 Commit: Jessica Clarke CommitDate: 2025-05-29 16:07:02 +0000 rtld-elf: Pass TCB to allocate_module_tls to avoid re-getting The only caller already has the current TCB to hand, so just pass it down rather than get it again. This also makes it clear in the caller that it depends on the (current) TCB, rather than being storage that could be assigned to any thread (concurrency issues aside). Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D50594 --- libexec/rtld-elf/rtld.c | 8 ++++---- libexec/rtld-elf/rtld.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index 9758fa78bc1b..625e67941be3 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -5380,7 +5380,7 @@ tls_get_addr_slow(struct tcb *tcb, int index, size_t offset, bool locked) wlock_acquire(rtld_bind_lock, &lockstate); if (!dtv->dtv_slots[index - 1].dtvs_tls) dtv->dtv_slots[index - 1].dtvs_tls = - allocate_module_tls(index); + allocate_module_tls(tcb, index); if (!locked) lock_release(rtld_bind_lock, &lockstate); } @@ -5665,7 +5665,7 @@ free_tls(void *tcb, size_t tcbsize __unused, size_t tcbalign) * Allocate TLS block for module with given index. */ void * -allocate_module_tls(int index) +allocate_module_tls(struct tcb *tcb, int index) { Obj_Entry *obj; char *p; @@ -5683,9 +5683,9 @@ allocate_module_tls(int index) if (obj->tls_static) { #ifdef TLS_VARIANT_I - p = (char *)_tcb_get() + obj->tlsoffset; + p = (char *)tcb + obj->tlsoffset; #else - p = (char *)_tcb_get() - obj->tlsoffset; + p = (char *)tcb - obj->tlsoffset; #endif return (p); } diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h index 378cb51d36c6..46473b92a637 100644 --- a/libexec/rtld-elf/rtld.h +++ b/libexec/rtld-elf/rtld.h @@ -418,7 +418,7 @@ int symlook_obj(SymLook *, const Obj_Entry *); void *tls_get_addr_common(struct tcb *tcb, int index, size_t offset); void *allocate_tls(Obj_Entry *, void *, size_t, size_t); void free_tls(void *, size_t, size_t); -void *allocate_module_tls(int index); +void *allocate_module_tls(struct tcb *tcb, int index); bool allocate_tls_offset(Obj_Entry *obj); void free_tls_offset(Obj_Entry *obj); const Ver_Entry *fetch_ventry(const Obj_Entry *obj, unsigned long);