PAPR carves out 0xff-0xe0 for hypervisor use of transactional memory software abort cause codes. Unfortunately we don't respect this currently. Below fixes this to move our cause codes to below this region.
Unified · Split
| @@ -113,14 +113,15 @@ · 112 unmodified lines | |||
| 113 | 113 | ||
| 114 | /* Reason codes describing kernel causes for transaction aborts. By | 114 | /* Reason codes describing kernel causes for transaction aborts. By |
| 115 | convention, bit0 is copied to TEXASR[56] (IBM bit 7) which is set if | 115 | convention, bit0 is copied to TEXASR[56] (IBM bit 7) which is set if |
| 116 | the failure is persistent. | 116 | the failure is persistent. PAPR saves 0xff-0xe0 for the hypervisor. |
| 117 | */ | 117 | */ |
| 118 | #define TM_CAUSE_RESCHED 0xfe | 118 | #define TM_CAUSE_PERSISTENT 0x01 |
| 119 | #define TM_CAUSE_TLBI 0xfc | 119 | #define TM_CAUSE_RESCHED 0xde |
| 120 | #define TM_CAUSE_FAC_UNAV 0xfa | 120 | #define TM_CAUSE_TLBI 0xdc |
| 121 | #define TM_CAUSE_SYSCALL 0xf9 /* Persistent */ | 121 | #define TM_CAUSE_FAC_UNAV 0xda |
| 122 | #define TM_CAUSE_MISC 0xf6 | 122 | #define TM_CAUSE_SYSCALL 0xd8 /* future use */ |
| 123 | #define TM_CAUSE_SIGNAL 0xf4 | 123 | #define TM_CAUSE_MISC 0xd6 /* future use */ |
| 124 | #define TM_CAUSE_SIGNAL 0xd4 | ||
| 124 | 125 | ||
| 125 | #if defined(CONFIG_PPC_BOOK3S_64) | 126 | #if defined(CONFIG_PPC_BOOK3S_64) |
| 126 | #define MSR_64BIT MSR_SF | 127 | #define MSR_64BIT MSR_SF |