processor.h (03e075b38e6cd25267c8d6e2797fa4537ca3348d) | processor.h (75edb54a1dea5ea1c8d3d82e27dc9ee3070f5935) |
---|---|
1#ifndef _ASM_X86_PROCESSOR_H 2#define _ASM_X86_PROCESSOR_H 3 4#include <asm/processor-flags.h> 5 6/* Forward declaration, a strange C thing */ 7struct task_struct; 8struct mm_struct; --- 752 unchanged lines hidden (view full) --- 761#define INIT_THREAD { \ 762 .sp0 = TOP_OF_INIT_STACK \ 763} 764 765/* 766 * Return saved PC of a blocked thread. 767 * What is this good for? it will be always the scheduler or ret_from_fork. 768 */ | 1#ifndef _ASM_X86_PROCESSOR_H 2#define _ASM_X86_PROCESSOR_H 3 4#include <asm/processor-flags.h> 5 6/* Forward declaration, a strange C thing */ 7struct task_struct; 8struct mm_struct; --- 752 unchanged lines hidden (view full) --- 761#define INIT_THREAD { \ 762 .sp0 = TOP_OF_INIT_STACK \ 763} 764 765/* 766 * Return saved PC of a blocked thread. 767 * What is this good for? it will be always the scheduler or ret_from_fork. 768 */ |
769#define thread_saved_pc(t) (*(unsigned long *)((t)->thread.sp - 8)) | 769#define thread_saved_pc(t) READ_ONCE_NOCHECK(*(unsigned long *)((t)->thread.sp - 8)) |
770 771#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1) 772extern unsigned long KSTK_ESP(struct task_struct *task); 773 774#endif /* CONFIG_X86_64 */ 775 776extern void start_thread(struct pt_regs *regs, unsigned long new_ip, 777 unsigned long new_sp); --- 65 unchanged lines hidden --- | 770 771#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1) 772extern unsigned long KSTK_ESP(struct task_struct *task); 773 774#endif /* CONFIG_X86_64 */ 775 776extern void start_thread(struct pt_regs *regs, unsigned long new_ip, 777 unsigned long new_sp); --- 65 unchanged lines hidden --- |