Commit 7b758389 authored by Heiko Carstens's avatar Heiko Carstens

[S390] Export stfle.

Make stfle visible so other code can call this.
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent cbce70e6
...@@ -687,7 +687,7 @@ static __init unsigned int stfl(void) ...@@ -687,7 +687,7 @@ static __init unsigned int stfl(void)
return S390_lowcore.stfl_fac_list; return S390_lowcore.stfl_fac_list;
} }
static __init int stfle(unsigned long long *list, int doublewords) static int __init __stfle(unsigned long long *list, int doublewords)
{ {
typedef struct { unsigned long long _[doublewords]; } addrtype; typedef struct { unsigned long long _[doublewords]; } addrtype;
register unsigned long __nr asm("0") = doublewords - 1; register unsigned long __nr asm("0") = doublewords - 1;
...@@ -697,6 +697,13 @@ static __init int stfle(unsigned long long *list, int doublewords) ...@@ -697,6 +697,13 @@ static __init int stfle(unsigned long long *list, int doublewords)
return __nr + 1; 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.
*/ */
...@@ -741,7 +748,7 @@ static void __init setup_hwcaps(void) ...@@ -741,7 +748,7 @@ static void __init setup_hwcaps(void)
* HWCAP_S390_DFP bit 6. * HWCAP_S390_DFP bit 6.
*/ */
if ((elf_hwcap & (1UL << 2)) && if ((elf_hwcap & (1UL << 2)) &&
stfle(&facility_list_extended, 1) > 0) { __stfle(&facility_list_extended, 1) > 0) {
if (facility_list_extended & (1ULL << (64 - 43))) if (facility_list_extended & (1ULL << (64 - 43)))
elf_hwcap |= 1UL << 6; elf_hwcap |= 1UL << 6;
} }
......
...@@ -406,6 +406,8 @@ __set_psw_mask(unsigned long mask) ...@@ -406,6 +406,8 @@ __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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment