瀏覽代碼

[S390] Move stfle to header file.

stfle will be needed by the ap_bus module to figure out wether the AP
queue adapter interruption facility is installed.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Heiko Carstens 16 年之前
父節點
當前提交
320c04c068
共有 2 個文件被更改,包括 18 次插入19 次删除
  1. 18 2
      arch/s390/include/asm/system.h
  2. 0 17
      arch/s390/kernel/setup.c

+ 18 - 2
arch/s390/include/asm/system.h

@@ -12,6 +12,7 @@
 #define __ASM_SYSTEM_H
 #define __ASM_SYSTEM_H
 
 
 #include <linux/kernel.h>
 #include <linux/kernel.h>
+#include <linux/errno.h>
 #include <asm/types.h>
 #include <asm/types.h>
 #include <asm/ptrace.h>
 #include <asm/ptrace.h>
 #include <asm/setup.h>
 #include <asm/setup.h>
@@ -413,8 +414,6 @@ __set_psw_mask(unsigned long mask)
 #define local_mcck_enable()  __set_psw_mask(psw_kernel_bits)
 #define local_mcck_enable()  __set_psw_mask(psw_kernel_bits)
 #define local_mcck_disable() __set_psw_mask(psw_kernel_bits & ~PSW_MASK_MCHECK)
 #define local_mcck_disable() __set_psw_mask(psw_kernel_bits & ~PSW_MASK_MCHECK)
 
 
-int stfle(unsigned long long *list, int doublewords);
-
 #ifdef CONFIG_SMP
 #ifdef CONFIG_SMP
 
 
 extern void smp_ctl_set_bit(int cr, int bit);
 extern void smp_ctl_set_bit(int cr, int bit);
@@ -438,6 +437,23 @@ static inline unsigned int stfl(void)
 	return S390_lowcore.stfl_fac_list;
 	return S390_lowcore.stfl_fac_list;
 }
 }
 
 
+static inline int __stfle(unsigned long long *list, int doublewords)
+{
+	typedef struct { unsigned long long _[doublewords]; } addrtype;
+	register unsigned long __nr asm("0") = doublewords - 1;
+
+	asm volatile(".insn s,0xb2b00000,%0" /* stfle */
+		     : "=m" (*(addrtype *) list), "+d" (__nr) : : "cc");
+	return __nr + 1;
+}
+
+static inline int stfle(unsigned long long *list, int doublewords)
+{
+	if (!(stfl() & (1UL << 24)))
+		return -EOPNOTSUPP;
+	return __stfle(list, doublewords);
+}
+
 static inline unsigned short stap(void)
 static inline unsigned short stap(void)
 {
 {
 	unsigned short cpu_address;
 	unsigned short cpu_address;

+ 0 - 17
arch/s390/kernel/setup.c

@@ -651,23 +651,6 @@ setup_memory(void)
 #endif
 #endif
 }
 }
 
 
-static int __init __stfle(unsigned long long *list, int doublewords)
-{
-	typedef struct { unsigned long long _[doublewords]; } addrtype;
-	register unsigned long __nr asm("0") = doublewords - 1;
-
-	asm volatile(".insn s,0xb2b00000,%0" /* stfle */
-		     : "=m" (*(addrtype *) list), "+d" (__nr) : : "cc");
-	return __nr + 1;
-}
-
-int __init stfle(unsigned long long *list, int doublewords)
-{
-	if (!(stfl() & (1UL << 24)))
-		return -EOPNOTSUPP;
-	return __stfle(list, doublewords);
-}
-
 /*
 /*
  * Setup hardware capabilities.
  * Setup hardware capabilities.
  */
  */