Re: [PATCH 4.4 15/50] s390/alternative: use a copy of the facility bit mask

From: Greg Kroah-Hartman
Date: Sat May 12 2018 - 15:45:08 EST


On Tue, May 08, 2018 at 09:20:55AM +0200, Greg Kroah-Hartman wrote:
> 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@xxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxx>
> > > > >
> > > > >
> > > > > [ 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@xxxxxxxxxx>
> > 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!

It breaks the build on 4.4.y, so I'm dropping it :(

If you think it's needed there, a working version would be nice :)

thanks,

greg k-h