Merge tag 'x86-fsgsbase-2020-08-04' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / arch / x86 / kernel / process.c
index 4298634d3f85e0241106ca25818377b27ad24518..994d8393f2f7b078b7e5f4c0111d06e01ccae994 100644 (file)
@@ -140,10 +140,12 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, unsigned long arg,
        memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
 
 #ifdef CONFIG_X86_64
-       savesegment(gs, p->thread.gsindex);
-       p->thread.gsbase = p->thread.gsindex ? 0 : current->thread.gsbase;
-       savesegment(fs, p->thread.fsindex);
-       p->thread.fsbase = p->thread.fsindex ? 0 : current->thread.fsbase;
+       current_save_fsgs();
+       p->thread.fsindex = current->thread.fsindex;
+       p->thread.fsbase = current->thread.fsbase;
+       p->thread.gsindex = current->thread.gsindex;
+       p->thread.gsbase = current->thread.gsbase;
+
        savesegment(es, p->thread.es);
        savesegment(ds, p->thread.ds);
 #else