[dpdk-dev] [PATCH] memory: fix alignment in eal_get_virtual_area()
Burakov, Anatoly
anatoly.burakov at intel.com
Mon Jul 16 14:58:00 CEST 2018
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 at intel.com
> Cc: stable at dpdk.org
>
> Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk at 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
More information about the dev
mailing list