Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d460f61 authored by Anshuman Khandual's avatar Anshuman Khandual Committed by Michael Ellerman
Browse files

powerpc/process: Add the function flush_tmregs_to_thread



This patch creates a function flush_tmregs_to_thread which
will then be used by subsequent patches in this series. The
function checks for self tracing ptrace interface attempts
while in the TM context and logs appropriate warning message.

Signed-off-by: default avatarAnshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: default avatarSimon Guo <wei.guo.simon@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 0dc696bc
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -75,6 +75,14 @@ static inline void disable_kernel_spe(void)
static inline void __giveup_spe(struct task_struct *t) { }
#endif

#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
extern void flush_tmregs_to_thread(struct task_struct *);
#else
static inline void flush_tmregs_to_thread(struct task_struct *t)
{
}
#endif

static inline void clear_task_ebb(struct task_struct *t)
{
#ifdef CONFIG_PPC_BOOK3S_64
+20 −0
Original line number Diff line number Diff line
@@ -1074,6 +1074,26 @@ static inline void restore_sprs(struct thread_struct *old_thread,
#endif
}

#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
void flush_tmregs_to_thread(struct task_struct *tsk)
{
	/*
	 * Process self tracing is not yet supported through
	 * ptrace interface. Ptrace generic code should have
	 * prevented this from happening in the first place.
	 * Warn once here with the message, if some how it
	 * is attempted.
	 */
	WARN_ONCE(tsk == current,
		"Not expecting ptrace on self: TM regs may be incorrect\n");

	/*
	 * If task is not current, it should have been flushed
	 * already to it's thread_struct during __switch_to().
	 */
}
#endif

struct task_struct *__switch_to(struct task_struct *prev,
	struct task_struct *new)
{