mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH -next] openrisc: Define __ro_after_init to avoid crash
@ 2016-09-24 14:15 Guenter Roeck
  2016-09-27 14:15 ` Stafford Horne
  0 siblings, 1 reply; 3+ messages in thread
From: Guenter Roeck @ 2016-09-24 14:15 UTC (permalink / raw)
  To: Jonas Bonn
  Cc: linux-kernel, shorne, stefan.kristiansson, akpm, Guenter Roeck,
	Kees Cook

openrisc qemu tests fail with the following crash.

Unable to handle kernel access at virtual address 0xc0300c34

Oops#: 0001
CPU #: 0
   PC: c016c710    SR: 0000ae67    SP: c1017e04
   GPR00: 00000000 GPR01: c1017e04 GPR02: c0300c34 GPR03: c0300c34
   GPR04: 00000000 GPR05: c0300cb0 GPR06: c0300c34 GPR07: 000000ff
   GPR08: c107f074 GPR09: c0199ef4 GPR10: c1016000 GPR11: 00000000
   GPR12: 00000000 GPR13: c107f044 GPR14: c0473774 GPR15: 07ce0000
   GPR16: 00000000 GPR17: c107ed8a GPR18: 00009600 GPR19: c107f044
   GPR20: c107ee74 GPR21: 00000003 GPR22: c0473770 GPR23: 00000033
   GPR24: 000000bf GPR25: 00000019 GPR26: c046400c GPR27: 00000001
   GPR28: c0464028 GPR29: c1018000 GPR30: 00000006 GPR31: ccf37483
     RES: 00000000 oGPR11: ffffffff
     Process swapper (pid: 1, stackpage=c1001960)

     Stack: Stack dump [0xc1017cf8]:
     sp + 00: 0xc1017e04
     sp + 04: 0xc0300c34
     sp + 08: 0xc0300c34
     sp + 12: 0x00000000
...

Bisect points to commit d2ec3f77de8e ("pty: make ptmx file ops read-only
after init"). Fix by defining __ro_after_init for the openrisc
architecture, similar to parisc.

Fixes: d2ec3f77de8e ("pty: make ptmx file ops read-only after init")
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 arch/openrisc/include/asm/cache.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
index 4ce7a01a252d..5f55da9cbfd5 100644
--- a/arch/openrisc/include/asm/cache.h
+++ b/arch/openrisc/include/asm/cache.h
@@ -23,6 +23,8 @@
  * they shouldn't be hard-coded!
  */
 
+#define __ro_after_init __read_mostly
+
 #define L1_CACHE_BYTES 16
 #define L1_CACHE_SHIFT 4
 
-- 
2.5.0

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH -next] openrisc: Define __ro_after_init to avoid crash
  2016-09-24 14:15 [PATCH -next] openrisc: Define __ro_after_init to avoid crash Guenter Roeck
@ 2016-09-27 14:15 ` Stafford Horne
  2016-09-27 14:41   ` Guenter Roeck
  0 siblings, 1 reply; 3+ messages in thread
From: Stafford Horne @ 2016-09-27 14:15 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Jonas Bonn, linux-kernel, shorne, stefan.kristiansson, akpm, Kees Cook



On Sat, 24 Sep 2016, Guenter Roeck wrote:

> openrisc qemu tests fail with the following crash.
>
> Unable to handle kernel access at virtual address 0xc0300c34
>
> Oops#: 0001
> CPU #: 0
>   PC: c016c710    SR: 0000ae67    SP: c1017e04
>   GPR00: 00000000 GPR01: c1017e04 GPR02: c0300c34 GPR03: c0300c34
>   GPR04: 00000000 GPR05: c0300cb0 GPR06: c0300c34 GPR07: 000000ff
>   GPR08: c107f074 GPR09: c0199ef4 GPR10: c1016000 GPR11: 00000000
>   GPR12: 00000000 GPR13: c107f044 GPR14: c0473774 GPR15: 07ce0000
>   GPR16: 00000000 GPR17: c107ed8a GPR18: 00009600 GPR19: c107f044
>   GPR20: c107ee74 GPR21: 00000003 GPR22: c0473770 GPR23: 00000033
>   GPR24: 000000bf GPR25: 00000019 GPR26: c046400c GPR27: 00000001
>   GPR28: c0464028 GPR29: c1018000 GPR30: 00000006 GPR31: ccf37483
>     RES: 00000000 oGPR11: ffffffff
>     Process swapper (pid: 1, stackpage=c1001960)
>
>     Stack: Stack dump [0xc1017cf8]:
>     sp + 00: 0xc1017e04
>     sp + 04: 0xc0300c34
>     sp + 08: 0xc0300c34
>     sp + 12: 0x00000000
> ...
>
> Bisect points to commit d2ec3f77de8e ("pty: make ptmx file ops read-only
> after init"). Fix by defining __ro_after_init for the openrisc
> architecture, similar to parisc.

Thanks for finding this one.
Just for clatify __read_mostly falls back to default blank in openrisc, so 
it gets no special section treatment.

Acked-by: Stafford Horne <shorne@gmail.com>


> Fixes: d2ec3f77de8e ("pty: make ptmx file ops read-only after init")
> Cc: Kees Cook <keescook@chromium.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> arch/openrisc/include/asm/cache.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
> index 4ce7a01a252d..5f55da9cbfd5 100644
> --- a/arch/openrisc/include/asm/cache.h
> +++ b/arch/openrisc/include/asm/cache.h
> @@ -23,6 +23,8 @@
>  * they shouldn't be hard-coded!
>  */
>
> +#define __ro_after_init __read_mostly
> +
> #define L1_CACHE_BYTES 16
> #define L1_CACHE_SHIFT 4
>
> -- 
> 2.5.0
>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH -next] openrisc: Define __ro_after_init to avoid crash
  2016-09-27 14:15 ` Stafford Horne
@ 2016-09-27 14:41   ` Guenter Roeck
  0 siblings, 0 replies; 3+ messages in thread
From: Guenter Roeck @ 2016-09-27 14:41 UTC (permalink / raw)
  To: Stafford Horne
  Cc: Jonas Bonn, linux-kernel, stefan.kristiansson, akpm, Kees Cook

On 09/27/2016 07:15 AM, Stafford Horne wrote:
>
>
> On Sat, 24 Sep 2016, Guenter Roeck wrote:
>
>> openrisc qemu tests fail with the following crash.
>>
>> Unable to handle kernel access at virtual address 0xc0300c34
>>
>> Oops#: 0001
>> CPU #: 0
>>   PC: c016c710    SR: 0000ae67    SP: c1017e04
>>   GPR00: 00000000 GPR01: c1017e04 GPR02: c0300c34 GPR03: c0300c34
>>   GPR04: 00000000 GPR05: c0300cb0 GPR06: c0300c34 GPR07: 000000ff
>>   GPR08: c107f074 GPR09: c0199ef4 GPR10: c1016000 GPR11: 00000000
>>   GPR12: 00000000 GPR13: c107f044 GPR14: c0473774 GPR15: 07ce0000
>>   GPR16: 00000000 GPR17: c107ed8a GPR18: 00009600 GPR19: c107f044
>>   GPR20: c107ee74 GPR21: 00000003 GPR22: c0473770 GPR23: 00000033
>>   GPR24: 000000bf GPR25: 00000019 GPR26: c046400c GPR27: 00000001
>>   GPR28: c0464028 GPR29: c1018000 GPR30: 00000006 GPR31: ccf37483
>>     RES: 00000000 oGPR11: ffffffff
>>     Process swapper (pid: 1, stackpage=c1001960)
>>
>>     Stack: Stack dump [0xc1017cf8]:
>>     sp + 00: 0xc1017e04
>>     sp + 04: 0xc0300c34
>>     sp + 08: 0xc0300c34
>>     sp + 12: 0x00000000
>> ...
>>
>> Bisect points to commit d2ec3f77de8e ("pty: make ptmx file ops read-only
>> after init"). Fix by defining __ro_after_init for the openrisc
>> architecture, similar to parisc.
>
> Thanks for finding this one.
> Just for clatify __read_mostly falls back to default blank in openrisc, so it gets no special section treatment.
>

Yes, I understand. It falls back to the pre-_ro_after_init behavior, which should be
perfectly fine here.

Guenter


> Acked-by: Stafford Horne <shorne@gmail.com>
>
>
>> Fixes: d2ec3f77de8e ("pty: make ptmx file ops read-only after init")
>> Cc: Kees Cook <keescook@chromium.org>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> arch/openrisc/include/asm/cache.h | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
>> index 4ce7a01a252d..5f55da9cbfd5 100644
>> --- a/arch/openrisc/include/asm/cache.h
>> +++ b/arch/openrisc/include/asm/cache.h
>> @@ -23,6 +23,8 @@
>>  * they shouldn't be hard-coded!
>>  */
>>
>> +#define __ro_after_init __read_mostly
>> +
>> #define L1_CACHE_BYTES 16
>> #define L1_CACHE_SHIFT 4
>>
>> --
>> 2.5.0
>>
>>
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-27 14:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-24 14:15 [PATCH -next] openrisc: Define __ro_after_init to avoid crash Guenter Roeck
2016-09-27 14:15 ` Stafford Horne
2016-09-27 14:41   ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®