On Mon, May 07, 2018 at 08:07:07AM +0200, Martin Schwidefsky wrote:
On Fri, 4 May 2018 15:18:08 -0700 Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Fri, May 04, 2018 at 09:37:20AM +0200, Jiri Slaby wrote:
On 04/27/2018, 03:58 PM, Greg Kroah-Hartman wrote:
4.4-stable review patch. If anyone has any objections, please let me know.
From: Martin Schwidefsky schwidefsky@de.ibm.com
[ Upstream commit cf1489984641369611556bf00c48f945c77bcf02 ]
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.
...
--- a/arch/s390/include/asm/facility.h +++ b/arch/s390/include/asm/facility.h @@ -13,6 +13,24 @@ #define MAX_FACILITY_BIT (256*8) /* stfle_fac_list has 256 bytes */
I wonder if the below (plus __test_facility) is correct in 4.4, given MAX_FACILITY_BIT is defined as such and not as sizeof(stfle_fac_list * 8) as in upstream?
I'm going to defer to Marin here, as he did the backport... Martin?
Good catch. With MAX_FACILITY_BIT == 2048 and the patch applied the result for a test_facility/__test_facility call with a facility number >= 1024 would give an incorrect result. Fortunately there are no such calls in the current 4.4 kernel source. And there are no facilities defined with bit numbers this large, so even out-of-tree code would not do this if it is sane.
To correct this the MAX_FACILITY_BIT define needs to be reduced to 1024 which would require the patch pointed out be Heiko:
commit 6f5165e864d240d15675cc2fb5a369d57e1f60d0 Author: Heiko Carstens heiko.carstens@de.ibm.com Date: Mon Mar 20 14:29:50 2017 +0100
s390/facilites: use stfle_fac_list array size for MAX_FACILITY_BIT
I would say yes, it *does* make sense to include this patch even if it does not fix anything.
Ok, I've now queued this up for 4.4.y and 4.9.y, thanks!
greg k-h