summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/alternative.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2018-01-16 07:03:44 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-02-05 13:49:16 +0100
commitcf1489984641369611556bf00c48f945c77bcf02 (patch)
treedb97d15f77022fd35bea4f20274efa965bb5230f /arch/s390/kernel/alternative.c
parente2dd833389cc4069a96b57bdd24227b5f52288f5 (diff)
downloadlinux-stable-cf1489984641369611556bf00c48f945c77bcf02.tar.gz
linux-stable-cf1489984641369611556bf00c48f945c77bcf02.tar.bz2
linux-stable-cf1489984641369611556bf00c48f945c77bcf02.zip
s390/alternative: use a copy of the facility bit mask
To be able to switch off specific CPU alternatives with kernel parameters make a copy of the facility bit mask provided by STFLE and use the copy for the decision to apply an alternative. Reviewed-by: David Hildenbrand <david@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/alternative.c')
-rw-r--r--arch/s390/kernel/alternative.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/s390/kernel/alternative.c b/arch/s390/kernel/alternative.c
index 574e77622c04..1abf4f35d059 100644
--- a/arch/s390/kernel/alternative.c
+++ b/arch/s390/kernel/alternative.c
@@ -75,7 +75,8 @@ static void __init_or_module __apply_alternatives(struct alt_instr *start,
instr = (u8 *)&a->instr_offset + a->instr_offset;
replacement = (u8 *)&a->repl_offset + a->repl_offset;
- if (!test_facility(a->facility))
+ if (!__test_facility(a->facility,
+ S390_lowcore.alt_stfle_fac_list))
continue;
if (unlikely(a->instrlen % 2 || a->replacementlen % 2)) {