Linux Audio

Check our new training course

Linux kernel drivers training

Mar 31-Apr 9, 2025, special US time zones
Register
Loading...
v6.8
 1// SPDX-License-Identifier: GPL-2.0
 2#include <linux/sched.h>
 3#include <asm/ptrace-abi.h>
 4
 5void clear_flushed_tls(struct task_struct *task)
 6{
 7}
 8
 9int arch_set_tls(struct task_struct *t, unsigned long tls)
10{
11	/*
12	 * If CLONE_SETTLS is set, we need to save the thread id
13	 * so it can be set during context switches.
 
14	 */
15	t->thread.regs.regs.gp[FS_BASE / sizeof(unsigned long)] = tls;
16
17	return 0;
18}
v5.4
 1// SPDX-License-Identifier: GPL-2.0
 2#include <linux/sched.h>
 3#include <asm/ptrace-abi.h>
 4
 5void clear_flushed_tls(struct task_struct *task)
 6{
 7}
 8
 9int arch_copy_tls(struct task_struct *t)
10{
11	/*
12	 * If CLONE_SETTLS is set, we need to save the thread id
13	 * (which is argument 5, child_tid, of clone) so it can be set
14	 * during context switches.
15	 */
16	t->thread.arch.fs = t->thread.regs.regs.gp[R8 / sizeof(long)];
17
18	return 0;
19}