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

Commit eacbb218 authored by Simon Guo's avatar Simon Guo Committed by Michael Ellerman
Browse files

powerpc: Export tm_enable()/tm_disable/tm_abort() APIs



This patch exports tm_enable()/tm_disable/tm_abort() APIs, which
will be used for PR KVM transactional memory logic.

Signed-off-by: default avatarSimon Guo <wei.guo.simon@gmail.com>
Reviewed-by: default avatarPaul Mackerras <paulus@ozlabs.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent ab3759b5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -141,4 +141,7 @@ unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip);
void pnv_power9_force_smt4_catch(void);
void pnv_power9_force_smt4_release(void);

void tm_enable(void);
void tm_disable(void);
void tm_abort(uint8_t cause);
#endif /* _ASM_POWERPC_ASM_PROTOTYPES_H */
+0 −2
Original line number Diff line number Diff line
@@ -10,12 +10,10 @@

#ifndef __ASSEMBLY__

extern void tm_enable(void);
extern void tm_reclaim(struct thread_struct *thread,
		       uint8_t cause);
extern void tm_reclaim_current(uint8_t cause);
extern void tm_recheckpoint(struct thread_struct *thread);
extern void tm_abort(uint8_t cause);
extern void tm_save_sprs(struct thread_struct *thread);
extern void tm_restore_sprs(struct thread_struct *thread);

+12 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#include <asm/ptrace.h>
#include <asm/reg.h>
#include <asm/bug.h>
#include <asm/export.h>

#ifdef CONFIG_VSX
/* See fpu.S, this is borrowed from there */
@@ -55,6 +56,16 @@ _GLOBAL(tm_enable)
	or	r4, r4, r3
	mtmsrd	r4
1:	blr
EXPORT_SYMBOL_GPL(tm_enable);

_GLOBAL(tm_disable)
	mfmsr	r4
	li	r3, MSR_TM >> 32
	sldi	r3, r3, 32
	andc	r4, r4, r3
	mtmsrd	r4
	blr
EXPORT_SYMBOL_GPL(tm_disable);

_GLOBAL(tm_save_sprs)
	mfspr	r0, SPRN_TFHAR
@@ -78,6 +89,7 @@ _GLOBAL(tm_restore_sprs)
_GLOBAL(tm_abort)
	TABORT(R3)
	blr
EXPORT_SYMBOL_GPL(tm_abort);

/* void tm_reclaim(struct thread_struct *thread,
 *		   uint8_t cause)
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@
#include <asm/trace.h>
#include <asm/ps3.h>
#include <asm/pte-walk.h>
#include <asm/asm-prototypes.h>

#ifdef DEBUG
#define DBG(fmt...) udbg_printf(fmt)