diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2010-10-25 10:10:51 -0400 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-10-25 10:10:21 -0400 |
commit | 14375bc4eb8dd0fb0e765390650564c35bb31068 (patch) | |
tree | 27200620658245c582ee9497fc969a082b304cab /arch/s390/kernel/topology.c | |
parent | eca577ef5989d25dedc6b0fae3c4622ceaee8005 (diff) |
[S390] cleanup facility list handling
Store the facility list once at system startup with stfl/stfle and
reuse the result for all facility tests.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/topology.c')
-rw-r--r-- | arch/s390/kernel/topology.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index eb0bc4752ae..91fb66baa50 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c | |||
@@ -351,13 +351,10 @@ static void alloc_masks(struct tl_info *info, struct mask_info *mask, int offset | |||
351 | 351 | ||
352 | void __init s390_init_cpu_topology(void) | 352 | void __init s390_init_cpu_topology(void) |
353 | { | 353 | { |
354 | unsigned long long facility_bits; | ||
355 | struct tl_info *info; | 354 | struct tl_info *info; |
356 | int i; | 355 | int i; |
357 | 356 | ||
358 | if (stfle(&facility_bits, 1) <= 0) | 357 | if (!test_facility(2) || !test_facility(11)) |
359 | return; | ||
360 | if (!(facility_bits & (1ULL << 52)) || !(facility_bits & (1ULL << 61))) | ||
361 | return; | 358 | return; |
362 | machine_has_topology = 1; | 359 | machine_has_topology = 1; |
363 | 360 | ||