[dpdk-stable] patch 'net/sfc: fix align to power of 2 when align has smaller type' has been queued to LTS release 18.11.3

Kevin Traynor ktraynor at redhat.com
Thu Sep 5 12:17:08 CEST 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 09/12/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/af2ccf01123b177953470bdac3362df248561be1

Thanks.

Kevin Traynor

---
>From af2ccf01123b177953470bdac3362df248561be1 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko at solarflare.com>
Date: Wed, 24 Jul 2019 14:16:33 +0100
Subject: [PATCH] net/sfc: fix align to power of 2 when align has smaller type

[ upstream commit 827ad8232cb87a0f79e65c3f5bb154a2fd771153 ]

Substitute driver-defined P2ALIGN() with EFX_P2ALIGN() defined in
libefx.

Cast value and alignment to one specified type to guarantee result
correctness.

Fixes: e1b944598579 ("net/sfc: build libefx")

Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
---
 drivers/net/sfc/base/ef10_rx.c | 2 +-
 drivers/net/sfc/base/efx.h     | 4 ++++
 drivers/net/sfc/efsys.h        | 4 ----
 drivers/net/sfc/sfc_rx.c       | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/sfc/base/ef10_rx.c b/drivers/net/sfc/base/ef10_rx.c
index 09e8bb816..6e3277daf 100644
--- a/drivers/net/sfc/base/ef10_rx.c
+++ b/drivers/net/sfc/base/ef10_rx.c
@@ -843,5 +843,5 @@ ef10_rx_qpush(
 
 	/* Hardware has alignment restriction for WPTR */
-	wptr = P2ALIGN(added, EF10_RX_WPTR_ALIGN);
+	wptr = EFX_P2ALIGN(unsigned int, added, EF10_RX_WPTR_ALIGN);
 	if (pushed == wptr)
 		return;
diff --git a/drivers/net/sfc/base/efx.h b/drivers/net/sfc/base/efx.h
index 4f25e69e1..eacd431df 100644
--- a/drivers/net/sfc/base/efx.h
+++ b/drivers/net/sfc/base/efx.h
@@ -33,4 +33,8 @@ extern "C" {
 	(-(-(_type)(_value) & -(_type)(_align)))
 
+/* Align value down to the nearest power of two. */
+#define	EFX_P2ALIGN(_type, _value, _align)	\
+	((_type)(_value) & -(_type)(_align))
+
 /* Return codes */
 
diff --git a/drivers/net/sfc/efsys.h b/drivers/net/sfc/efsys.h
index c8d652436..8fd6e1bb5 100644
--- a/drivers/net/sfc/efsys.h
+++ b/drivers/net/sfc/efsys.h
@@ -77,8 +77,4 @@ typedef bool boolean_t;
 #endif
 
-#ifndef P2ALIGN
-#define P2ALIGN(_x, _a)		((_x) & -(_a))
-#endif
-
 #ifndef ISP2
 #define ISP2(x)			rte_is_power_of_2(x)
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index a78d35a22..630f6b455 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -953,5 +953,5 @@ sfc_rx_mb_pool_buf_size(struct sfc_adapter *sa, struct rte_mempool *mb_pool)
 		 * just align length.
 		 */
-		buf_size = P2ALIGN(buf_size, nic_align_end);
+		buf_size = EFX_P2ALIGN(uint32_t, buf_size, nic_align_end);
 	}
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-09-05 10:36:47.993146766 +0100
+++ 0008-net-sfc-fix-align-to-power-of-2-when-align-has-small.patch	2019-09-05 10:36:47.467701552 +0100
@@ -1 +1 @@
-From 827ad8232cb87a0f79e65c3f5bb154a2fd771153 Mon Sep 17 00:00:00 2001
+From af2ccf01123b177953470bdac3362df248561be1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 827ad8232cb87a0f79e65c3f5bb154a2fd771153 ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -24 +25 @@
-index b087a5d42..bb4489bbf 100644
+index 09e8bb816..6e3277daf 100644
@@ -27 +28 @@
-@@ -860,5 +860,5 @@ ef10_rx_qpush(
+@@ -843,5 +843,5 @@ ef10_rx_qpush(
@@ -35 +36 @@
-index 835d057b1..6aff68b54 100644
+index 4f25e69e1..eacd431df 100644
@@ -38 +39 @@
-@@ -34,4 +34,8 @@ extern "C" {
+@@ -33,4 +33,8 @@ extern "C" {
@@ -48 +49 @@
-index 4c122d040..79fd3c144 100644
+index c8d652436..8fd6e1bb5 100644
@@ -61 +62 @@
-index 23dff0967..e6809bb64 100644
+index a78d35a22..630f6b455 100644
@@ -64 +65 @@
-@@ -1020,5 +1020,5 @@ sfc_rx_mb_pool_buf_size(struct sfc_adapter *sa, struct rte_mempool *mb_pool)
+@@ -953,5 +953,5 @@ sfc_rx_mb_pool_buf_size(struct sfc_adapter *sa, struct rte_mempool *mb_pool)


More information about the stable mailing list