Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f559306a authored by Heiko Carstens's avatar Heiko Carstens Committed by Greg Kroah-Hartman
Browse files

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: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent b5ac8778
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -53,9 +53,11 @@ static inline int test_facility(unsigned long nr)
	unsigned long facilities_als[] = { FACILITIES_ALS };

	if (__builtin_constant_p(nr) && nr < sizeof(facilities_als) * 8) {
		if (__test_facility(nr, &facilities_als))
		if (__test_facility(nr, &facilities_als)) {
			if (!__is_defined(__DECOMPRESSOR))
				return 1;
		}
	}
	return __test_facility(nr, &S390_lowcore.stfle_fac_list);
}