diff options
Diffstat (limited to 'include/asm-ia64/sn/sn_sal.h')
-rw-r--r-- | include/asm-ia64/sn/sn_sal.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index 8c865e43f60..ba826b3f75b 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
@@ -85,6 +85,7 @@ | |||
85 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 | 85 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 |
86 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 | 86 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 |
87 | #define SN_SAL_INJECT_ERROR 0x02000067 | 87 | #define SN_SAL_INJECT_ERROR 0x02000067 |
88 | #define SN_SAL_SET_CPU_NUMBER 0x02000068 | ||
88 | 89 | ||
89 | /* | 90 | /* |
90 | * Service-specific constants | 91 | * Service-specific constants |
@@ -345,7 +346,7 @@ ia64_sn_plat_set_error_handling_features(void) | |||
345 | ret_stuff.v1 = 0; | 346 | ret_stuff.v1 = 0; |
346 | ret_stuff.v2 = 0; | 347 | ret_stuff.v2 = 0; |
347 | SAL_CALL_REENTRANT(ret_stuff, SN_SAL_SET_ERROR_HANDLING_FEATURES, | 348 | SAL_CALL_REENTRANT(ret_stuff, SN_SAL_SET_ERROR_HANDLING_FEATURES, |
348 | (SAL_ERR_FEAT_MCA_SLV_TO_OS_INIT_SLV | SAL_ERR_FEAT_LOG_SBES), | 349 | SAL_ERR_FEAT_LOG_SBES, |
349 | 0, 0, 0, 0, 0, 0); | 350 | 0, 0, 0, 0, 0, 0); |
350 | 351 | ||
351 | return ret_stuff.status; | 352 | return ret_stuff.status; |
@@ -705,12 +706,9 @@ static inline int | |||
705 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) | 706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) |
706 | { | 707 | { |
707 | struct ia64_sal_retval ret_stuff; | 708 | struct ia64_sal_retval ret_stuff; |
708 | unsigned long irq_flags; | ||
709 | 709 | ||
710 | local_irq_save(irq_flags); | ||
711 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, | 710 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, |
712 | (u64)nasid_array, perms, 0, 0, 0); | 711 | (u64)nasid_array, perms, 0, 0, 0); |
713 | local_irq_restore(irq_flags); | ||
714 | return ret_stuff.status; | 712 | return ret_stuff.status; |
715 | } | 713 | } |
716 | #define SN_MEMPROT_ACCESS_CLASS_0 0x14a080 | 714 | #define SN_MEMPROT_ACCESS_CLASS_0 0x14a080 |
@@ -1142,12 +1140,18 @@ static inline int | |||
1142 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) | 1140 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) |
1143 | { | 1141 | { |
1144 | struct ia64_sal_retval ret_stuff; | 1142 | struct ia64_sal_retval ret_stuff; |
1145 | unsigned long irq_flags; | ||
1146 | 1143 | ||
1147 | local_irq_save(irq_flags); | ||
1148 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, | 1144 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, |
1149 | (u64)ecc, 0, 0, 0, 0); | 1145 | (u64)ecc, 0, 0, 0, 0); |
1150 | local_irq_restore(irq_flags); | ||
1151 | return ret_stuff.status; | 1146 | return ret_stuff.status; |
1152 | } | 1147 | } |
1148 | |||
1149 | static inline int | ||
1150 | ia64_sn_set_cpu_number(int cpu) | ||
1151 | { | ||
1152 | struct ia64_sal_retval rv; | ||
1153 | |||
1154 | SAL_CALL_NOLOCK(rv, SN_SAL_SET_CPU_NUMBER, cpu, 0, 0, 0, 0, 0, 0); | ||
1155 | return rv.status; | ||
1156 | } | ||
1153 | #endif /* _ASM_IA64_SN_SN_SAL_H */ | 1157 | #endif /* _ASM_IA64_SN_SN_SAL_H */ |