2019-05-15 08:30:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching

On Wed, May 15, 2019 at 06:40:47AM +0000, Christophe Leroy wrote:
> [Backport of upstream commit b45ba4a51cde29b2939365ef0c07ad34c8321789]
>
> On powerpc32, patch_instruction() is called by apply_feature_fixups()
> which is called from early_init()
>
> There is the following note in front of early_init():
> * Note that the kernel may be running at an address which is different
> * from the address that it was linked at, so we must use RELOC/PTRRELOC
> * to access static data (including strings). -- paulus
>
> Therefore init_mem_is_free must be accessed with PTRRELOC()
>
> Fixes: 1c38a84d4586 ("powerpc: Avoid code patching freed init sections")
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=203597
> Signed-off-by: Christophe Leroy <[email protected]>
>
> ---
> Can't apply the upstream commit as such due to several other unrelated stuff
> like for instance STRICT_KERNEL_RWX which are missing.
> So instead, using same approach as for commit 252eb55816a6f69ef9464cad303cdb3326cdc61d

Now queued up, thanks.

greg k-h


2019-05-15 12:38:42

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching



Le 15/05/2019 à 10:29, Greg KH a écrit :
> On Wed, May 15, 2019 at 06:40:47AM +0000, Christophe Leroy wrote:
>> [Backport of upstream commit b45ba4a51cde29b2939365ef0c07ad34c8321789]
>>
>> On powerpc32, patch_instruction() is called by apply_feature_fixups()
>> which is called from early_init()
>>
>> There is the following note in front of early_init():
>> * Note that the kernel may be running at an address which is different
>> * from the address that it was linked at, so we must use RELOC/PTRRELOC
>> * to access static data (including strings). -- paulus
>>
>> Therefore init_mem_is_free must be accessed with PTRRELOC()
>>
>> Fixes: 1c38a84d4586 ("powerpc: Avoid code patching freed init sections")
>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=203597
>> Signed-off-by: Christophe Leroy <[email protected]>
>>
>> ---
>> Can't apply the upstream commit as such due to several other unrelated stuff
>> like for instance STRICT_KERNEL_RWX which are missing.
>> So instead, using same approach as for commit 252eb55816a6f69ef9464cad303cdb3326cdc61d
>
> Now queued up, thanks.
>

Should go to 4.4 as well since the commit it fixes is now queued for 4.4
([PATCH 4.4 056/266] powerpc: Avoid code patching freed init sections)

Christophe

2019-05-15 13:10:29

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching

On Wed, May 15, 2019 at 02:35:36PM +0200, Christophe Leroy wrote:
>
>
> Le 15/05/2019 ? 10:29, Greg KH a ?crit?:
> > On Wed, May 15, 2019 at 06:40:47AM +0000, Christophe Leroy wrote:
> > > [Backport of upstream commit b45ba4a51cde29b2939365ef0c07ad34c8321789]
> > >
> > > On powerpc32, patch_instruction() is called by apply_feature_fixups()
> > > which is called from early_init()
> > >
> > > There is the following note in front of early_init():
> > > * Note that the kernel may be running at an address which is different
> > > * from the address that it was linked at, so we must use RELOC/PTRRELOC
> > > * to access static data (including strings). -- paulus
> > >
> > > Therefore init_mem_is_free must be accessed with PTRRELOC()
> > >
> > > Fixes: 1c38a84d4586 ("powerpc: Avoid code patching freed init sections")
> > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=203597
> > > Signed-off-by: Christophe Leroy <[email protected]>
> > >
> > > ---
> > > Can't apply the upstream commit as such due to several other unrelated stuff
> > > like for instance STRICT_KERNEL_RWX which are missing.
> > > So instead, using same approach as for commit 252eb55816a6f69ef9464cad303cdb3326cdc61d
> >
> > Now queued up, thanks.
> >
>
> Should go to 4.4 as well since the commit it fixes is now queued for 4.4
> ([PATCH 4.4 056/266] powerpc: Avoid code patching freed init sections)

Ok, can someone send me a backport that actually applies there?

thanks,

greg k-h

2019-05-15 13:32:49

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching



Le 15/05/2019 à 15:08, Greg KH a écrit :
> On Wed, May 15, 2019 at 02:35:36PM +0200, Christophe Leroy wrote:
>>
>>
>> Le 15/05/2019 à 10:29, Greg KH a écrit :
>>> On Wed, May 15, 2019 at 06:40:47AM +0000, Christophe Leroy wrote:
>>>> [Backport of upstream commit b45ba4a51cde29b2939365ef0c07ad34c8321789]
>>>>
>>>> On powerpc32, patch_instruction() is called by apply_feature_fixups()
>>>> which is called from early_init()
>>>>
>>>> There is the following note in front of early_init():
>>>> * Note that the kernel may be running at an address which is different
>>>> * from the address that it was linked at, so we must use RELOC/PTRRELOC
>>>> * to access static data (including strings). -- paulus
>>>>
>>>> Therefore init_mem_is_free must be accessed with PTRRELOC()
>>>>
>>>> Fixes: 1c38a84d4586 ("powerpc: Avoid code patching freed init sections")
>>>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=203597
>>>> Signed-off-by: Christophe Leroy <[email protected]>
>>>>
>>>> ---
>>>> Can't apply the upstream commit as such due to several other unrelated stuff
>>>> like for instance STRICT_KERNEL_RWX which are missing.
>>>> So instead, using same approach as for commit 252eb55816a6f69ef9464cad303cdb3326cdc61d
>>>
>>> Now queued up, thanks.
>>>
>>
>> Should go to 4.4 as well since the commit it fixes is now queued for 4.4
>> ([PATCH 4.4 056/266] powerpc: Avoid code patching freed init sections)
>
> Ok, can someone send me a backport that actually applies there?
>

Done

Christophe