Lines Matching defs:task
21 #include <linux/sched/task.h>
250 static __always_inline void save_fsgs(struct task_struct *task)
252 savesegment(fs, task->thread.fsindex);
253 savesegment(gs, task->thread.gsindex);
260 task->thread.fsbase = rdfsbase();
261 task->thread.gsbase = __rdgsbase_inactive();
263 save_base_legacy(task, task->thread.fsindex, FS);
264 save_base_legacy(task, task->thread.gsindex, GS);
302 * The next task is using 64-bit TLS, is not using this
337 * The next task is using a real segment. Loading the selector
347 * lookup in the task's FPU xsave buffer and require to keep that updated
356 /* Stash the prev task's value: */
388 unsigned long x86_fsgsbase_read_task(struct task_struct *task,
406 base = get_desc_base(&task->thread.tls_array[idx]);
416 mutex_lock(&task->mm->context.lock);
417 ldt = task->mm->context.ldt;
422 mutex_unlock(&task->mm->context.lock);
461 unsigned long x86_fsbase_read_task(struct task_struct *task)
465 if (task == current)
468 (task->thread.fsindex == 0))
469 fsbase = task->thread.fsbase;
471 fsbase = x86_fsgsbase_read_task(task, task->thread.fsindex);
476 unsigned long x86_gsbase_read_task(struct task_struct *task)
480 if (task == current)
483 (task->thread.gsindex == 0))
484 gsbase = task->thread.gsbase;
486 gsbase = x86_fsgsbase_read_task(task, task->thread.gsindex);
491 void x86_fsbase_write_task(struct task_struct *task, unsigned long fsbase)
493 WARN_ON_ONCE(task == current);
495 task->thread.fsbase = fsbase;
498 void x86_gsbase_write_task(struct task_struct *task, unsigned long gsbase)
500 WARN_ON_ONCE(task == current);
502 task->thread.gsbase = gsbase;
647 * in the same task as a running syscall, we are guaranteed to
795 long do_arch_prctl_64(struct task_struct *task, int option, unsigned long arg2)
811 if (task == current) {
819 task->thread.gsbase = arg2;
822 task->thread.gsindex = 0;
823 x86_gsbase_write_task(task, arg2);
841 if (task == current) {
849 task->thread.fsbase = arg2;
851 task->thread.fsindex = 0;
852 x86_fsbase_write_task(task, arg2);
858 unsigned long base = x86_fsbase_read_task(task);
864 unsigned long base = x86_gsbase_read_task(task);
884 return put_user(task->mm->context.untag_mask,
887 return prctl_enable_tagged_addr(task->mm, arg2);
889 if (current != task)
891 set_bit(MM_CONTEXT_FORCE_TAGGED_SVA, &task->mm->context.flags);
904 return shstk_prctl(task, option, arg2);
931 unsigned long KSTK_ESP(struct task_struct *task)
933 return task_pt_regs(task)->sp;