From: Michal Krawczyk <mk@semihalf.com>
To: Marcin Wojtas <mw@semihalf.com>,
Michal Krawczyk <mk@semihalf.com>,
Guy Tzalik <gtzalik@amazon.com>,
Evgeny Schemeilin <evgenys@amazon.com>
Cc: dev@dpdk.org, matua@amazon.com, Rafal Kozik <rk@semihalf.com>
Subject: [dpdk-dev] [PATCH v3 25/27] net/ena: fix GENMASK_ULL macro
Date: Thu, 7 Jun 2018 11:43:20 +0200 [thread overview]
Message-ID: <20180607094322.14312-25-mk@semihalf.com> (raw)
In-Reply-To: <20180607094322.14312-1-mk@semihalf.com>
From: Rafal Kozik <rk@semihalf.com>
When use GENMASK_ULL(63,0) left shift by 64 bits is performed.
Shifting by number greater or equal then word length
is undefined operation and failed on some platforms.
Fixes: 9ba7981ec992 ("ena: add communication layer for DPDK")
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
---
drivers/net/ena/base/ena_plat_dpdk.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h
index 22d7a9cb1..8a04e84b9 100644
--- a/drivers/net/ena/base/ena_plat_dpdk.h
+++ b/drivers/net/ena/base/ena_plat_dpdk.h
@@ -116,11 +116,13 @@ typedef uint64_t dma_addr_t;
#define ENA_MIN16(x, y) RTE_MIN((x), (y))
#define ENA_MIN8(x, y) RTE_MIN((x), (y))
+#define BITS_PER_LONG_LONG (__SIZEOF_LONG_LONG__ * 8)
#define U64_C(x) x ## ULL
#define BIT(nr) (1UL << (nr))
#define BITS_PER_LONG (__SIZEOF_LONG__ * 8)
#define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
-#define GENMASK_ULL(h, l) (((U64_C(1) << ((h) - (l) + 1)) - 1) << (l))
+#define GENMASK_ULL(h, l) (((~0ULL) - (1ULL << (l)) + 1) & \
+ (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h))))
#ifdef RTE_LIBRTE_ENA_COM_DEBUG
#define ena_trc_dbg(format, arg...) \
--
2.14.1
next prev parent reply other threads:[~2018-06-07 9:44 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-07 9:42 [dpdk-dev] [PATCH v3 01/27] net/ena: change version number to 1.1.0 Michal Krawczyk
2018-06-07 9:42 ` [dpdk-dev] [PATCH v3 02/27] net/ena: update ena_com to the newer version Michal Krawczyk
2018-06-08 19:43 ` Ferruh Yigit
2018-06-11 9:54 ` [dpdk-dev] [PATCH v4 2/2] " Michal Krawczyk
2018-06-11 10:42 ` Ferruh Yigit
2018-06-11 11:01 ` [dpdk-dev] [PATCH v5 02/27] " Michal Krawczyk
2018-06-07 9:42 ` [dpdk-dev] [PATCH v3 03/27] net/ena: remove support of legacy LLQ Michal Krawczyk
2018-06-07 9:42 ` [dpdk-dev] [PATCH v3 04/27] net/ena: add interrupt handler for admin queue Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 05/27] net/ena: add stop and uninit routines Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 06/27] net/ena: add LSC intr support and AENQ handling Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 07/27] net/ena: handle ENA notification Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 08/27] net/ena: restart only initialized queues instead of all Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 09/27] net/ena: add reset routine Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 10/27] net/ena: add lrte_timer dependency for linking Michal Krawczyk
2018-06-08 19:17 ` Ferruh Yigit
2018-06-11 6:24 ` Michał Krawczyk
2018-06-17 22:37 ` Thomas Monjalon
2018-06-18 6:04 ` Michał Krawczyk
2018-06-18 8:30 ` Thomas Monjalon
2018-06-18 8:32 ` Michał Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 11/27] net/ena: add watchdog and keep alive AENQ handler Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 12/27] net/ena: add checking for admin queue state Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 13/27] net/ena: make watchdog configurable Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 14/27] net/ena: add RX out of order completion Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 15/27] net/ena: linearize Tx mbuf Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 16/27] net/ena: add info about max number of Tx/Rx descriptors Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 17/27] net/ena: unimplemented handler error Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 18/27] net/ena: rework configuration of IO queue numbers Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 19/27] net/ena: validate Tx req id Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 20/27] net/ena: add (un)likely statements Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 21/27] net/ena: adjust error checking and cleaning Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 22/27] net/ena: update numa node Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 23/27] net/ena: check pointer before memset Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 24/27] net/ena: change memory type Michal Krawczyk
2018-06-07 9:43 ` Michal Krawczyk [this message]
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 26/27] net/ena: store handle after memory allocation Michal Krawczyk
2018-06-07 9:43 ` [dpdk-dev] [PATCH v3 27/27] net/ena: set link speed as none Michal Krawczyk
2018-06-08 19:37 ` Ferruh Yigit
2018-06-10 1:35 ` Chas Williams
2018-06-11 8:01 ` Michał Krawczyk
2018-06-11 16:15 ` Chas Williams
2018-06-19 6:32 ` Michał Krawczyk
2018-06-08 19:45 ` [dpdk-dev] [PATCH v3 01/27] net/ena: change version number to 1.1.0 Ferruh Yigit
2018-06-11 8:45 ` Michał Krawczyk
2018-06-11 9:26 ` Ferruh Yigit
2018-06-11 9:33 ` Michał Krawczyk
2018-06-11 9:50 ` Ferruh Yigit
2018-06-11 9:52 ` Michał Krawczyk
2018-06-11 12:34 ` Ferruh Yigit
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=20180607094322.14312-25-mk@semihalf.com \
--to=mk@semihalf.com \
--cc=dev@dpdk.org \
--cc=evgenys@amazon.com \
--cc=gtzalik@amazon.com \
--cc=matua@amazon.com \
--cc=mw@semihalf.com \
--cc=rk@semihalf.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).