From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933579AbcI0OmE (ORCPT ); Tue, 27 Sep 2016 10:42:04 -0400 Received: from bh-25.webhostbox.net ([208.91.199.152]:39481 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751263AbcI0Ol6 (ORCPT ); Tue, 27 Sep 2016 10:41:58 -0400 Subject: Re: [PATCH -next] openrisc: Define __ro_after_init to avoid crash To: Stafford Horne References: <1474726502-29872-1-git-send-email-linux@roeck-us.net> Cc: Jonas Bonn , linux-kernel@vger.kernel.org, stefan.kristiansson@saunalahti.fi, akpm@linux-foundation.org, Kees Cook From: Guenter Roeck Message-ID: <9cbb8e34-01d1-e600-5ea0-f057d76cdc20@roeck-us.net> Date: Tue, 27 Sep 2016 07:41:51 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated_sender: linux@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: linux@roeck-us.net X-Authenticated-Sender: bh-25.webhostbox.net: linux@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > > >> Fixes: d2ec3f77de8e ("pty: make ptmx file ops read-only after init") >> Cc: Kees Cook >> Signed-off-by: Guenter Roeck >> --- >> 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 >> >> >