Browse Source

Do not overwrite static TCB

Jeremy Soller 2 years ago
parent
commit
f5651b22ea
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/ld_so/linker.rs

+ 4 - 2
src/ld_so/linker.rs

@@ -230,8 +230,10 @@ impl Linker {
             if self.next_tls_module_id == 0 {
                 // Hack to allocate TCB on the first TLS module
                 unsafe {
-                    let tcb = Tcb::new(master.offset).expect_notls("failed to allocate TCB");
-                    tcb.activate();
+                    if Tcb::current().is_none() {
+                        let tcb = Tcb::new(master.offset).expect_notls("failed to allocate TCB");
+                        tcb.activate();
+                    }
                 }
             }
             self.next_tls_module_id += 1;