From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Bruce Richardson <bruce.richardson@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Cc: "stable@dpdk.org" <stable@dpdk.org>
Subject: RE: [PATCH] eal: fix pointer add/sub macros for large offsets values
Date: Mon, 14 Sep 2026 08:29:42 +0000 [thread overview]
Message-ID: <2ef8efd39dd54b22ae0c007dfa397a99@huawei.com> (raw)
In-Reply-To: <20260911164030.2465043-1-bruce.richardson@intel.com>
> The macros for adding or subtracting from pointers cast the pointer type
> to uintptr_t before doing the arithmetic. However, for 32-bit builds, if
> the value being added or subtracted is larger than uintptr_t, then we
> get errors when casting back to "void *" type.
But probably error here in such case is a good thing, as it flags an overflow?
Can't user explicitly convert x then to 32-bit type, if that was an intention?
> We fix this by casting
> the result to uintptr_t before casting to pointer.
>
> Fixes: af75078fece3 ("first public release")
> Cc: stable@dpdk.org
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> lib/eal/include/rte_common.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
> index f872d3eabb..c17f50e2fd 100644
> --- a/lib/eal/include/rte_common.h
> +++ b/lib/eal/include/rte_common.h
> @@ -572,12 +572,12 @@ static void __attribute__((destructor(RTE_PRIO(prio)),
> used)) func(void)
> /**
> * add a byte-value offset to a pointer
> */
> -#define RTE_PTR_ADD(ptr, x) ((void*)((uintptr_t)(ptr) + (x)))
> +#define RTE_PTR_ADD(ptr, x) ((void *)(uintptr_t)((uintptr_t)(ptr) + (x)))
>
> /**
> * subtract a byte-value offset from a pointer
> */
> -#define RTE_PTR_SUB(ptr, x) ((void *)((uintptr_t)(ptr) - (x)))
> +#define RTE_PTR_SUB(ptr, x) ((void *)(uintptr_t)((uintptr_t)(ptr) - (x)))
>
> /**
> * get the difference between two pointer values, i.e. how far apart
> --
> 2.53.0
next prev parent reply other threads:[~2026-09-14 8:29 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 16:40 [PATCH] eal: fix pointer add/sub macros for large offsets values Bruce Richardson
2026-09-14 8:29 ` Konstantin Ananyev [this message]
2026-09-14 9:05 ` Bruce Richardson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2ef8efd39dd54b22ae0c007dfa397a99@huawei.com \
--to=konstantin.ananyev@huawei.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=stable@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.