From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161770AbcIZRru (ORCPT ); Mon, 26 Sep 2016 13:47:50 -0400 Received: from mail.kernel.org ([198.145.29.136]:48338 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161357AbcIZRrt (ORCPT ); Mon, 26 Sep 2016 13:47:49 -0400 Date: Mon, 26 Sep 2016 10:47:45 -0700 From: Shaohua Li To: Gayatri Kammela Cc: linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, h.peter.anvin@intel.com, ravi.v.shankar@intel.com, fenghua.yu@intel.com, "H . Peter Anvin" , Yu-cheng Yu Subject: Re: [PATCH v2] raid6/test/test.c: bug fix: Specify aligned(alignment) attributes to the char arrays Message-ID: <20160926174745.GA16209@kernel.org> References: <1474589275-12045-1-git-send-email-gayatri.kammela@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1474589275-12045-1-git-send-email-gayatri.kammela@intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Sep 22, 2016 at 05:07:55PM -0700, Gayatri Kammela wrote: > Specifying the aligned attributes to the char recovi[PAGE_SIZE] > and char recovi[PAGE_SIZE] arrays, so that all malloc memory is page > boundary aligned. > > Without these alignment attributes, the test causes a segfault in > userspace when the NDISKS are changed to 4 from 16. > > Cc: H. Peter Anvin > Cc: Yu-cheng Yu > Signed-off-by: Gayatri Kammela > --- > lib/raid6/test/test.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/lib/raid6/test/test.c b/lib/raid6/test/test.c > index 3bebbabdb510..32a00f11ac50 100644 > --- a/lib/raid6/test/test.c > +++ b/lib/raid6/test/test.c > @@ -21,12 +21,13 @@ > > #define NDISKS 16 /* Including P and Q */ > > -const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256))); > +const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(PAGE_SIZE))); > struct raid6_calls raid6_call; > > char *dataptrs[NDISKS]; > char data[NDISKS][PAGE_SIZE]; shouldn't this one be page aligned too? > -char recovi[PAGE_SIZE], recovj[PAGE_SIZE]; > +char recovi[PAGE_SIZE] __attribute__((aligned(PAGE_SIZE))); > +char recovj[PAGE_SIZE] __attribute__((aligned(PAGE_SIZE))); > > static void makedata(int start, int stop) > { > -- > 2.7.4 >