mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 17:24:17 +08:00
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: Simon Guo <wei.guo.simon@gmail.com> Reviewed-by: Paul Mackerras <paulus@ozlabs.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
ab3759b573
commit
eacbb218fb
@ -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 */
|
||||
|
@ -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,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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user