aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/kernel/setup.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 580abb53ce83..18222ac4078f 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -713,13 +713,15 @@ static void __init setup_hwcaps(void)
713 * How many facility words are stored depends on the number of 713 * How many facility words are stored depends on the number of
714 * doublewords passed to the instruction. The additional facilites 714 * doublewords passed to the instruction. The additional facilites
715 * are: 715 * are:
716 * Bit 43: decimal floating point facility is installed 716 * Bit 42: decimal floating point facility is installed
717 * Bit 44: perform floating point operation facility is installed
717 * translated to: 718 * translated to:
718 * HWCAP_S390_DFP bit 6. 719 * HWCAP_S390_DFP bit 6.
719 */ 720 */
720 if ((elf_hwcap & (1UL << 2)) && 721 if ((elf_hwcap & (1UL << 2)) &&
721 __stfle(&facility_list_extended, 1) > 0) { 722 __stfle(&facility_list_extended, 1) > 0) {
722 if (facility_list_extended & (1ULL << (64 - 43))) 723 if ((facility_list_extended & (1ULL << (63 - 42)))
724 && (facility_list_extended & (1ULL << (63 - 44))))
723 elf_hwcap |= 1UL << 6; 725 elf_hwcap |= 1UL << 6;
724 } 726 }
725 727