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 ---