powerpc/powernv: Enable TM without suspend if possible
Some Power9 revisions can run in a mode where TM operates without suspended state. If we find ourself on a CPU that might be in this mode, we query OPAL to check, and if so we reenable TM in CPU features, and enable a new user feature to signal to userspace that we are in this mode. We do not enable the "normal" user feature, PPC_FEATURE2_HTM, but we do enable PPC_FEATURE2_HTM_NOSC because that indicates to userspace that the kernel will abort transactions on syscall entry, which is true regardless of the suspend mode. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
@@ -22,6 +22,8 @@ extern void pnv_npu2_destroy_context(struct npu_context *context,
|
||||
extern int pnv_npu2_handle_fault(struct npu_context *context, uintptr_t *ea,
|
||||
unsigned long *flags, unsigned long *status,
|
||||
int count);
|
||||
|
||||
void pnv_tm_init(void);
|
||||
#else
|
||||
static inline void powernv_set_nmmu_ptcr(unsigned long ptcr) { }
|
||||
static inline struct npu_context *pnv_npu2_init_context(struct pci_dev *gpdev,
|
||||
@@ -36,6 +38,8 @@ static inline int pnv_npu2_handle_fault(struct npu_context *context,
|
||||
unsigned long *status, int count) {
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline void pnv_tm_init(void) { }
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_POWERNV_H */
|
||||
|
Reference in New Issue
Block a user