Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 88418
b: refs/heads/master
c: 7b75838
h: refs/heads/master
v: v3
  • Loading branch information
Heiko Carstens committed Apr 17, 2008
1 parent 3a892a9 commit b4e4756
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cbce70e687bf9c7968d63f058b4c3d2e90008ce2
refs/heads/master: 7b758389a29cb7f456ec2d27b7a08cb3cc4e1f1c
11 changes: 9 additions & 2 deletions trunk/arch/s390/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,7 @@ static __init unsigned int stfl(void)
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;
register unsigned long __nr asm("0") = doublewords - 1;
Expand All @@ -697,6 +697,13 @@ static __init int stfle(unsigned long long *list, int doublewords)
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.
*/
Expand Down Expand Up @@ -741,7 +748,7 @@ static void __init setup_hwcaps(void)
* HWCAP_S390_DFP bit 6.
*/
if ((elf_hwcap & (1UL << 2)) &&
stfle(&facility_list_extended, 1) > 0) {
__stfle(&facility_list_extended, 1) > 0) {
if (facility_list_extended & (1ULL << (64 - 43)))
elf_hwcap |= 1UL << 6;
}
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/asm-s390/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,8 @@ __set_psw_mask(unsigned long mask)
#define local_mcck_enable() __set_psw_mask(psw_kernel_bits)
#define local_mcck_disable() __set_psw_mask(psw_kernel_bits & ~PSW_MASK_MCHECK)

int stfle(unsigned long long *list, int doublewords);

#ifdef CONFIG_SMP

extern void smp_ctl_set_bit(int cr, int bit);
Expand Down

0 comments on commit b4e4756

Please sign in to comment.