* [PATCH] powerpc/lib: fix book3s/32 boot failure due to code patching
@ 2019-05-15 6:40 ` Christophe Leroy
0 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 6:39 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
Greg KH, erhard_f, Michael Neuling
Cc: linuxppc-dev, linux-kernel, stable
[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 <christophe.leroy@c-s.fr>
---
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
---
arch/powerpc/lib/code-patching.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/lib/code-patching.c b/arch/powerpc/lib/code-patching.c
index 14535ad4cdd1..c312955977ce 100644
--- a/arch/powerpc/lib/code-patching.c
+++ b/arch/powerpc/lib/code-patching.c
@@ -23,7 +23,7 @@ int patch_instruction(unsigned int *addr, unsigned int instr)
int err;
/* Make sure we aren't patching a freed init section */
- if (init_mem_is_free && init_section_contains(addr, 4)) {
+ if (*PTRRELOC(&init_mem_is_free) && init_section_contains(addr, 4)) {
pr_debug("Skipping init section patching addr: 0x%px\n", addr);
return 0;
}
--
2.13.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
@ 2019-05-15 6:40 ` Christophe Leroy
0 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 6:40 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
Greg KH, erhard_f, Michael Neuling
Cc: linuxppc-dev, linux-kernel, stable
[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 <christophe.leroy@c-s.fr>
---
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
---
arch/powerpc/lib/code-patching.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/lib/code-patching.c b/arch/powerpc/lib/code-patching.c
index 14535ad4cdd1..c312955977ce 100644
--- a/arch/powerpc/lib/code-patching.c
+++ b/arch/powerpc/lib/code-patching.c
@@ -23,7 +23,7 @@ int patch_instruction(unsigned int *addr, unsigned int instr)
int err;
/* Make sure we aren't patching a freed init section */
- if (init_mem_is_free && init_section_contains(addr, 4)) {
+ if (*PTRRELOC(&init_mem_is_free) && init_section_contains(addr, 4)) {
pr_debug("Skipping init section patching addr: 0x%px\n", addr);
return 0;
}
--
2.13.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] powerpc/lib: fix book3s/32 boot failure due to code patching
2019-05-15 6:40 ` [PATCH stable 4.9] " Christophe Leroy
(?)
@ 2019-05-15 6:41 ` Christophe Leroy
-1 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 6:41 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
Greg KH, erhard_f, Michael Neuling
Cc: linuxppc-dev, linux-kernel, stable
Oops, forgot to tell it's for 4.9. Resending with proper subject.
Le 15/05/2019 à 08:39, Christophe Leroy a écrit :
> [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 <christophe.leroy@c-s.fr>
>
> ---
> 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
> ---
> arch/powerpc/lib/code-patching.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/lib/code-patching.c b/arch/powerpc/lib/code-patching.c
> index 14535ad4cdd1..c312955977ce 100644
> --- a/arch/powerpc/lib/code-patching.c
> +++ b/arch/powerpc/lib/code-patching.c
> @@ -23,7 +23,7 @@ int patch_instruction(unsigned int *addr, unsigned int instr)
> int err;
>
> /* Make sure we aren't patching a freed init section */
> - if (init_mem_is_free && init_section_contains(addr, 4)) {
> + if (*PTRRELOC(&init_mem_is_free) && init_section_contains(addr, 4)) {
> pr_debug("Skipping init section patching addr: 0x%px\n", addr);
> return 0;
> }
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
2019-05-15 6:40 ` [PATCH stable 4.9] " Christophe Leroy
@ 2019-05-15 8:29 ` Greg KH
-1 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2019-05-15 8:29 UTC (permalink / raw)
To: Christophe Leroy
Cc: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
erhard_f, Michael Neuling, linux-kernel, linuxppc-dev, stable
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 <christophe.leroy@c-s.fr>
>
> ---
> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
@ 2019-05-15 8:29 ` Greg KH
0 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2019-05-15 8:29 UTC (permalink / raw)
To: Christophe Leroy
Cc: erhard_f, Michael Neuling, linux-kernel, stable, Paul Mackerras,
linuxppc-dev
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 <christophe.leroy@c-s.fr>
>
> ---
> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
2019-05-15 8:29 ` Greg KH
@ 2019-05-15 12:35 ` Christophe Leroy
-1 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 12:35 UTC (permalink / raw)
To: Greg KH
Cc: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
erhard_f, Michael Neuling, linux-kernel, linuxppc-dev, stable
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 <christophe.leroy@c-s.fr>
>>
>> ---
>> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
@ 2019-05-15 12:35 ` Christophe Leroy
0 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 12:35 UTC (permalink / raw)
To: Greg KH
Cc: erhard_f, Michael Neuling, linux-kernel, stable, Paul Mackerras,
linuxppc-dev
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 <christophe.leroy@c-s.fr>
>>
>> ---
>> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
2019-05-15 12:35 ` Christophe Leroy
@ 2019-05-15 13:08 ` Greg KH
-1 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2019-05-15 13:08 UTC (permalink / raw)
To: Christophe Leroy
Cc: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
erhard_f, Michael Neuling, linux-kernel, linuxppc-dev, stable
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 <christophe.leroy@c-s.fr>
> > >
> > > ---
> > > 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
@ 2019-05-15 13:08 ` Greg KH
0 siblings, 0 replies; 11+ messages in thread
From: Greg KH @ 2019-05-15 13:08 UTC (permalink / raw)
To: Christophe Leroy
Cc: erhard_f, Michael Neuling, linux-kernel, stable, Paul Mackerras,
linuxppc-dev
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 <christophe.leroy@c-s.fr>
> > >
> > > ---
> > > 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
2019-05-15 13:08 ` Greg KH
@ 2019-05-15 13:31 ` Christophe Leroy
-1 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 13:31 UTC (permalink / raw)
To: Greg KH
Cc: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
erhard_f, Michael Neuling, linux-kernel, linuxppc-dev, stable
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 <christophe.leroy@c-s.fr>
>>>>
>>>> ---
>>>> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH stable 4.9] powerpc/lib: fix book3s/32 boot failure due to code patching
@ 2019-05-15 13:31 ` Christophe Leroy
0 siblings, 0 replies; 11+ messages in thread
From: Christophe Leroy @ 2019-05-15 13:31 UTC (permalink / raw)
To: Greg KH
Cc: erhard_f, Michael Neuling, linux-kernel, stable, Paul Mackerras,
linuxppc-dev
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 <christophe.leroy@c-s.fr>
>>>>
>>>> ---
>>>> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-05-15 13:36 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-15 6:39 [PATCH] powerpc/lib: fix book3s/32 boot failure due to code patching Christophe Leroy
2019-05-15 6:40 ` [PATCH stable 4.9] " Christophe Leroy
2019-05-15 6:41 ` [PATCH] " Christophe Leroy
2019-05-15 8:29 ` [PATCH stable 4.9] " Greg KH
2019-05-15 8:29 ` Greg KH
2019-05-15 12:35 ` Christophe Leroy
2019-05-15 12:35 ` Christophe Leroy
2019-05-15 13:08 ` Greg KH
2019-05-15 13:08 ` Greg KH
2019-05-15 13:31 ` Christophe Leroy
2019-05-15 13:31 ` Christophe Leroy
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.