1*4882a593SmuzhiyunFrom 252e1127421c3c50c56d5c34a1a1b9251592b87c Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: JeffyChen <jeffy.chen@rock-chips.com> 3*4882a593SmuzhiyunDate: Fri, 2 Jul 2021 17:39:24 +0200 4*4882a593SmuzhiyunSubject: [PATCH 02/20] malloc: Initiate tcache shutdown even without 5*4882a593Smuzhiyun allocations [BZ #28028] 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunAfter commit 1e26d35193efbb29239c710a4c46a64708643320 ("malloc: Fix 8*4882a593Smuzhiyuntcache leak after thread destruction [BZ #22111]"), 9*4882a593Smuzhiyuntcache_shutting_down is still not early enough. When we detach a 10*4882a593Smuzhiyunthread with no tcache allocated, tcache_shutting_down would still be 11*4882a593Smuzhiyunfalse. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunReviewed-by: DJ Delorie <dj@redhat.com> 14*4882a593Smuzhiyun(cherry picked from commit dfec225ee1972488bb48a8b67a2c4a13010c334a) 15*4882a593SmuzhiyunSigned-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 16*4882a593Smuzhiyun--- 17*4882a593Smuzhiyun malloc/malloc.c | 3 ++- 18*4882a593Smuzhiyun 1 file changed, 2 insertions(+), 1 deletion(-) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyundiff --git a/malloc/malloc.c b/malloc/malloc.c 21*4882a593Smuzhiyunindex 27cf6137..c2ed8b6b 100644 22*4882a593Smuzhiyun--- a/malloc/malloc.c 23*4882a593Smuzhiyun+++ b/malloc/malloc.c 24*4882a593Smuzhiyun@@ -2943,12 +2943,13 @@ tcache_thread_shutdown (void) 25*4882a593Smuzhiyun int i; 26*4882a593Smuzhiyun tcache_perthread_struct *tcache_tmp = tcache; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun+ tcache_shutting_down = true; 29*4882a593Smuzhiyun+ 30*4882a593Smuzhiyun if (!tcache) 31*4882a593Smuzhiyun return; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun /* Disable the tcache and prevent it from being reinitialized. */ 34*4882a593Smuzhiyun tcache = NULL; 35*4882a593Smuzhiyun- tcache_shutting_down = true; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun /* Free all of the entries and the tcache itself back to the arena 38*4882a593Smuzhiyun heap for coalescing. */ 39*4882a593Smuzhiyun-- 40*4882a593Smuzhiyun2.20.1 41*4882a593Smuzhiyun 42