Patch "s390/facility: Disable compile time optimization for decompressor code" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    s390/facility: Disable compile time optimization for decompressor code

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     s390-facility-disable-compile-time-optimization-for-.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 72401c24515a9d7dc53b181a14409161df6ac783
Author: Heiko Carstens <hca@xxxxxxxxxxxxx>
Date:   Wed Sep 4 11:39:24 2024 +0200

    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@xxxxxxxxxxxxx>
    Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/s390/include/asm/facility.h b/arch/s390/include/asm/facility.h
index b7d234838a366..65ebf86506cde 100644
--- a/arch/s390/include/asm/facility.h
+++ b/arch/s390/include/asm/facility.h
@@ -59,8 +59,10 @@ 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))
-			return 1;
+		if (__test_facility(nr, &facilities_als)) {
+			if (!__is_defined(__DECOMPRESSOR))
+				return 1;
+		}
 	}
 	return __test_facility(nr, &stfle_fac_list);
 }




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux