aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ia64/sn/sn_sal.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ia64/sn/sn_sal.h')
-rw-r--r--include/asm-ia64/sn/sn_sal.h18
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
705sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) 706sn_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
1142sn_inject_error(u64 paddr, u64 *data, u64 *ecc) 1140sn_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
1149static inline int
1150ia64_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 */