diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-10-06 04:34:13 -0400 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2009-10-06 04:35:10 -0400 |
commit | ea2a4d3a3a929ef494952bba57a0ef1a8a877881 (patch) | |
tree | 757cd0a94f71a3d62d3c5038e408fcd49796685f /arch/s390/kernel/setup.c | |
parent | dd43bfca431b02117e8598e01b301e001a68295e (diff) |
[S390] 64-bit register support for 31-bit processes
From: Heiko Carstens <heiko.carstens@de.ibm.com>
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/setup.c')
-rw-r--r-- | arch/s390/kernel/setup.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 9ed13a1ed376..061479ff029f 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -729,7 +729,7 @@ static void __init setup_hwcaps(void) | |||
729 | 729 | ||
730 | if ((facility_list & (1UL << (31 - 22))) | 730 | if ((facility_list & (1UL << (31 - 22))) |
731 | && (facility_list & (1UL << (31 - 30)))) | 731 | && (facility_list & (1UL << (31 - 30)))) |
732 | elf_hwcap |= 1UL << 8; | 732 | elf_hwcap |= HWCAP_S390_ETF3EH; |
733 | 733 | ||
734 | /* | 734 | /* |
735 | * Check for additional facilities with store-facility-list-extended. | 735 | * Check for additional facilities with store-facility-list-extended. |
@@ -748,11 +748,20 @@ static void __init setup_hwcaps(void) | |||
748 | __stfle(&facility_list_extended, 1) > 0) { | 748 | __stfle(&facility_list_extended, 1) > 0) { |
749 | if ((facility_list_extended & (1ULL << (63 - 42))) | 749 | if ((facility_list_extended & (1ULL << (63 - 42))) |
750 | && (facility_list_extended & (1ULL << (63 - 44)))) | 750 | && (facility_list_extended & (1ULL << (63 - 44)))) |
751 | elf_hwcap |= 1UL << 6; | 751 | elf_hwcap |= HWCAP_S390_DFP; |
752 | } | 752 | } |
753 | 753 | ||
754 | /* | ||
755 | * Huge page support HWCAP_S390_HPAGE is bit 7. | ||
756 | */ | ||
754 | if (MACHINE_HAS_HPAGE) | 757 | if (MACHINE_HAS_HPAGE) |
755 | elf_hwcap |= 1UL << 7; | 758 | elf_hwcap |= HWCAP_S390_HPAGE; |
759 | |||
760 | /* | ||
761 | * 64-bit register support for 31-bit processes | ||
762 | * HWCAP_S390_HIGH_GPRS is bit 9. | ||
763 | */ | ||
764 | elf_hwcap |= HWCAP_S390_HIGH_GPRS; | ||
756 | 765 | ||
757 | switch (S390_lowcore.cpu_id.machine) { | 766 | switch (S390_lowcore.cpu_id.machine) { |
758 | case 0x9672: | 767 | case 0x9672: |