From mboxrd@z Thu Jan 1 00:00:00 1970 From: jszhang@marvell.com (Jisheng Zhang) Date: Mon, 15 Aug 2016 12:52:14 +0800 Subject: [PATCH v3 3/4] arm64: kaslr: Fix incorrect placement of __initdata and __read_mostly In-Reply-To: References: <1470988871-2799-1-git-send-email-jszhang@marvell.com> <1470988871-2799-4-git-send-email-jszhang@marvell.com> Message-ID: <20160815125214.2727bf88@xhacker> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Ard, On Fri, 12 Aug 2016 14:02:40 +0200 Ard Biesheuvel wrote: > Hi Jisheng, > > On 12 August 2016 at 10:01, Jisheng Zhang wrote: > > __initdata and __read_mostly should be placed after the variable name > > for the variable to be placed in the intended section. > > > > Why? include/linux/init.h says something as: * For initialized data: * You should insert __initdata or __initconst between the variable name * and equal sign followed by value, e.g.: * * static int init_variable __initdata = 0; * static const char linux_logo[] __initconst = { 0x32, 0x36, ... }; and examples in gcc manual also put __attribute__ (...) after variable name. https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes Then I grep the source, found most lines (especially arch/arm64/*) put the __initdata and __read_mostly after the variable name. However, I built the code with three different gcc, the result looks identical no matter where these markers put. So the commit msg looks wrong, what about changes it as "put __initdata and __read_mostly after the variable name to keep the style consistent"? Thanks, Jisheng > > > Signed-off-by: Jisheng Zhang > > --- > > arch/arm64/kernel/kaslr.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/kernel/kaslr.c b/arch/arm64/kernel/kaslr.c > > index b054691..8ebabc4 100644 > > --- a/arch/arm64/kernel/kaslr.c > > +++ b/arch/arm64/kernel/kaslr.c > > @@ -20,8 +20,8 @@ > > #include > > #include > > > > -u64 __read_mostly module_alloc_base; > > -u16 __initdata memstart_offset_seed; > > +u64 module_alloc_base __read_mostly; > > +u16 memstart_offset_seed __initdata; > > > > static __init u64 get_kaslr_seed(void *fdt) > > { > > -- > > 2.8.1 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel at lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752275AbcHOE5H (ORCPT ); Mon, 15 Aug 2016 00:57:07 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:34212 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750946AbcHOE5G (ORCPT ); Mon, 15 Aug 2016 00:57:06 -0400 Date: Mon, 15 Aug 2016 12:52:14 +0800 From: Jisheng Zhang To: Ard Biesheuvel CC: Catalin Marinas , Will Deacon , Lorenzo Pieralisi , "Kees Cook" , Mark Rutland , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v3 3/4] arm64: kaslr: Fix incorrect placement of __initdata and __read_mostly Message-ID: <20160815125214.2727bf88@xhacker> In-Reply-To: References: <1470988871-2799-1-git-send-email-jszhang@marvell.com> <1470988871-2799-4-git-send-email-jszhang@marvell.com> X-Mailer: Claws Mail 3.14.0 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-08-15_01:,, signatures=0 X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1608150059 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Ard, On Fri, 12 Aug 2016 14:02:40 +0200 Ard Biesheuvel wrote: > Hi Jisheng, > > On 12 August 2016 at 10:01, Jisheng Zhang wrote: > > __initdata and __read_mostly should be placed after the variable name > > for the variable to be placed in the intended section. > > > > Why? include/linux/init.h says something as: * For initialized data: * You should insert __initdata or __initconst between the variable name * and equal sign followed by value, e.g.: * * static int init_variable __initdata = 0; * static const char linux_logo[] __initconst = { 0x32, 0x36, ... }; and examples in gcc manual also put __attribute__ (...) after variable name. https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes Then I grep the source, found most lines (especially arch/arm64/*) put the __initdata and __read_mostly after the variable name. However, I built the code with three different gcc, the result looks identical no matter where these markers put. So the commit msg looks wrong, what about changes it as "put __initdata and __read_mostly after the variable name to keep the style consistent"? Thanks, Jisheng > > > Signed-off-by: Jisheng Zhang > > --- > > arch/arm64/kernel/kaslr.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm64/kernel/kaslr.c b/arch/arm64/kernel/kaslr.c > > index b054691..8ebabc4 100644 > > --- a/arch/arm64/kernel/kaslr.c > > +++ b/arch/arm64/kernel/kaslr.c > > @@ -20,8 +20,8 @@ > > #include > > #include > > > > -u64 __read_mostly module_alloc_base; > > -u16 __initdata memstart_offset_seed; > > +u64 module_alloc_base __read_mostly; > > +u16 memstart_offset_seed __initdata; > > > > static __init u64 get_kaslr_seed(void *fdt) > > { > > -- > > 2.8.1 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel