Contributors: 18
Author Tokens Token Proportion Commits Commit Proportion
Rick Edgecombe 146 60.08% 5 19.23%
Andi Kleen 30 12.35% 1 3.85%
Jiri Olsa 25 10.29% 2 7.69%
Kirill A. Shutemov 6 2.47% 1 3.85%
Thomas Gleixner 5 2.06% 2 7.69%
Borislav Petkov 4 1.65% 1 3.85%
Chris Zankel 4 1.65% 1 3.85%
Al Viro 4 1.65% 1 3.85%
Linus Torvalds (pre-git) 3 1.23% 2 7.69%
Kyle Huey 3 1.23% 2 7.69%
Brian Gerst 3 1.23% 1 3.85%
David Howells 2 0.82% 1 3.85%
Corey Minyard 2 0.82% 1 3.85%
Glauber de Oliveira Costa 2 0.82% 1 3.85%
Amanieu d'Antras 1 0.41% 1 3.85%
Greg Kroah-Hartman 1 0.41% 1 3.85%
Eric W. Biedermann 1 0.41% 1 3.85%
Suresh B. Siddha 1 0.41% 1 3.85%
Total 243 26

123456789101112131415161718192021222324252627282930313233343536373839404142
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_X86_SHSTK_H
#define _ASM_X86_SHSTK_H

#ifndef __ASSEMBLY__
#include <linux/types.h>

struct task_struct;
struct ksignal;

#ifdef CONFIG_X86_USER_SHADOW_STACK
struct thread_shstk {
	u64	base;
	u64	size;
};

long shstk_prctl(struct task_struct *task, int option, unsigned long arg2);
void reset_thread_features(void);
unsigned long shstk_alloc_thread_stack(struct task_struct *p, unsigned long clone_flags,
				       unsigned long stack_size);
void shstk_free(struct task_struct *p);
int setup_signal_shadow_stack(struct ksignal *ksig);
int restore_signal_shadow_stack(void);
int shstk_update_last_frame(unsigned long val);
bool shstk_is_enabled(void);
#else
static inline long shstk_prctl(struct task_struct *task, int option,
			       unsigned long arg2) { return -EINVAL; }
static inline void reset_thread_features(void) {}
static inline unsigned long shstk_alloc_thread_stack(struct task_struct *p,
						     unsigned long clone_flags,
						     unsigned long stack_size) { return 0; }
static inline void shstk_free(struct task_struct *p) {}
static inline int setup_signal_shadow_stack(struct ksignal *ksig) { return 0; }
static inline int restore_signal_shadow_stack(void) { return 0; }
static inline int shstk_update_last_frame(unsigned long val) { return 0; }
static inline bool shstk_is_enabled(void) { return false; }
#endif /* CONFIG_X86_USER_SHADOW_STACK */

#endif /* __ASSEMBLY__ */

#endif /* _ASM_X86_SHSTK_H */