Fix: pre-fault TLS in ust-malloc instrumentation
[lttng-ust.git] / liblttng-ust-libc-wrapper / lttng-ust-malloc.c
index 5d290445026575f15de5074cb33f696be62c09c1..f3e1e19e28e52d8d5fe07d399f6c4741d0d87282 100644 (file)
@@ -421,6 +421,12 @@ int posix_memalign(void **memptr, size_t alignment, size_t size)
        return retval;
 }
 
+static
+void lttng_ust_fixup_malloc_nesting_tls(void)
+{
+       asm volatile ("" : : "m" (URCU_TLS(malloc_nesting)));
+}
+
 __attribute__((constructor))
 void lttng_ust_malloc_wrapper_init(void)
 {
@@ -428,6 +434,7 @@ void lttng_ust_malloc_wrapper_init(void)
        if (cur_alloc.calloc) {
                return;
        }
+       lttng_ust_fixup_malloc_nesting_tls();
        /*
         * Ensure the allocator is in place before the process becomes
         * multithreaded.
This page took 0.023612 seconds and 4 git commands to generate.