mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
s390/facility: Disable compile time optimization for decompressor code
[ Upstream commit 0147addc4fb72a39448b8873d8acdf3a0f29aa65 ] Disable compile time optimizations of test_facility() for the decompressor. The decompressor should not contain any optimized code depending on the architecture level set the kernel image is compiled for to avoid unexpected operation exceptions. Add a __DECOMPRESSOR check to test_facility() to enforce that facilities are always checked during runtime for the decompressor. Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
39b5ecc927
commit
5ff787ebd0
@@ -60,8 +60,10 @@ static inline int test_facility(unsigned long nr)
|
|||||||
unsigned long facilities_als[] = { FACILITIES_ALS };
|
unsigned long facilities_als[] = { FACILITIES_ALS };
|
||||||
|
|
||||||
if (__builtin_constant_p(nr) && nr < sizeof(facilities_als) * 8) {
|
if (__builtin_constant_p(nr) && nr < sizeof(facilities_als) * 8) {
|
||||||
if (__test_facility(nr, &facilities_als))
|
if (__test_facility(nr, &facilities_als)) {
|
||||||
return 1;
|
if (!__is_defined(__DECOMPRESSOR))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return __test_facility(nr, &stfle_fac_list);
|
return __test_facility(nr, &stfle_fac_list);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user