From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <anatoly.burakov@intel.com>
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by dpdk.org (Postfix) with ESMTP id 879B2200;
 Mon, 16 Jul 2018 14:58:15 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 16 Jul 2018 05:58:14 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.51,361,1526367600"; d="scan'208";a="240660233"
Received: from aburakov-mobl.ger.corp.intel.com (HELO [10.237.220.102])
 ([10.237.220.102])
 by orsmga005.jf.intel.com with ESMTP; 16 Jul 2018 05:58:01 -0700
To: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>, dev@dpdk.org
Cc: stable@dpdk.org
References: <1528916894-1991-1-git-send-email-dariuszx.stojaczyk@intel.com>
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Message-ID: <c8586b27-e2af-fb25-3bbf-962855c3520b@intel.com>
Date: Mon, 16 Jul 2018 13:58:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.9.1
MIME-Version: 1.0
In-Reply-To: <1528916894-1991-1-git-send-email-dariuszx.stojaczyk@intel.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-stable] [PATCH] memory: fix alignment in
	eal_get_virtual_area()
X-BeenThere: stable@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches for DPDK stable branches <stable.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/stable>,
 <mailto:stable-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/stable/>
List-Post: <mailto:stable@dpdk.org>
List-Help: <mailto:stable-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/stable>,
 <mailto:stable-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Jul 2018 12:58:16 -0000

On 13-Jun-18 8:08 PM, Dariusz Stojaczyk wrote:
> Although the alignment mechanism works as intended, the
> `no_align` bool flag was set incorrectly. We were aligning
> buffers that didn't need extra alignment, and weren't
> aligning ones that really needed it.
> 
> Fixes: b7cc54187ea4 ("mem: move virtual area function in common directory")
> Cc: anatoly.burakov@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
> ---
>   lib/librte_eal/common/eal_common_memory.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c
> index 4f0688f..a7c89f0 100644
> --- a/lib/librte_eal/common/eal_common_memory.c
> +++ b/lib/librte_eal/common/eal_common_memory.c
> @@ -70,7 +70,7 @@ eal_get_virtual_area(void *requested_addr, size_t *size,
>   	 * system page size is the same as requested page size.
>   	 */
>   	no_align = (requested_addr != NULL &&
> -		((uintptr_t)requested_addr & (page_sz - 1)) == 0) ||
> +		((uintptr_t)requested_addr & (page_sz - 1))) ||
>   		page_sz == system_page_sz;
>   
>   	do {
> 

This patch is wrong - no alignment should be performed if address is 
already alighed, e.g. if requested_addr & (page_sz - 1) == 0. The 
original code was correct.

Thomas, could you please revert this patch?

-- 
Thanks,
Anatoly