SHA256
1
0
forked from pool/dpdk

Accepting request 404208 from home:markoschandras:network-fixes

- Add upstream patches to fix building with gcc >= 6
  * 0100-kni-fix-build-with-gcc-6.patch
  * 0101-ixgbe-fix-uninitialized-warning.patch
  * 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch
  * 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch
  * 0104-igb-fix-constant-sign-in-left-shift-operator.patch
  * 0105-e1000-fix-missing-link-interrupt-check-brackets.patch
  * 0106-app-test-fix-missing-brackets.patch
  * 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch

OBS-URL: https://build.opensuse.org/request/show/404208
OBS-URL: https://build.opensuse.org/package/show/network/dpdk?expand=0&rev=9
This commit is contained in:
Nirmoy Das 2016-06-23 10:41:55 +00:00 committed by Git OBS Bridge
parent dad1d915f7
commit 77f1f98e47
10 changed files with 449 additions and 1 deletions

View File

@ -0,0 +1,73 @@
From cba50f6be0db9efdf694dcf4bce4a6945a275182 Mon Sep 17 00:00:00 2001
From: Anupam Kapoor <anupam.kapoor@gmail.com>
Date: Tue, 21 Jun 2016 17:13:22 +0530
Subject: [PATCH] kni: fix build with gcc 6
This commit fixes build errors triggered due misleading indentation.
Fixes: b9ee370557f1 ("kni: update kernel driver ethtool baseline")
Fixes: 3fc5ca2f6352 ("kni: initial import")
Signed-off-by: Anupam Kapoor <anupam.kapoor@gmail.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c | 6 ++++--
lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c | 3 ++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
index df22470..140a2a4 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/e1000_phy.c
@@ -3300,12 +3300,13 @@ s32 e1000_read_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 *data)
*data = E1000_READ_REG(hw, E1000_MPHY_DATA);
/* Disable access to mPHY if it was originally disabled */
- if (locked)
+ if (locked) {
ready = e1000_is_mphy_ready(hw);
if (!ready)
return -E1000_ERR_PHY;
E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
E1000_MPHY_DIS_ACCESS);
+ }
return E1000_SUCCESS;
}
@@ -3365,12 +3366,13 @@ s32 e1000_write_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 data,
E1000_WRITE_REG(hw, E1000_MPHY_DATA, data);
/* Disable access to mPHY if it was originally disabled */
- if (locked)
+ if (locked) {
ready = e1000_is_mphy_ready(hw);
if (!ready)
return -E1000_ERR_PHY;
E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
E1000_MPHY_DIS_ACCESS);
+ }
return E1000_SUCCESS;
}
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
index 017dfe1..c6f4130 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_82599.c
@@ -867,12 +867,13 @@ s32 ixgbe_setup_mac_link_82599(struct ixgbe_hw *hw,
link_mode == IXGBE_AUTOC_LMS_KX4_KX_KR_SGMII) {
/* Set KX4/KX/KR support according to speed requested */
autoc &= ~(IXGBE_AUTOC_KX4_KX_SUPP_MASK | IXGBE_AUTOC_KR_SUPP);
- if (speed & IXGBE_LINK_SPEED_10GB_FULL)
+ if (speed & IXGBE_LINK_SPEED_10GB_FULL) {
if (orig_autoc & IXGBE_AUTOC_KX4_SUPP)
autoc |= IXGBE_AUTOC_KX4_SUPP;
if ((orig_autoc & IXGBE_AUTOC_KR_SUPP) &&
(hw->phy.smart_speed_active == false))
autoc |= IXGBE_AUTOC_KR_SUPP;
+ }
if (speed & IXGBE_LINK_SPEED_1GB_FULL)
autoc |= IXGBE_AUTOC_KX_SUPP;
} else if ((pma_pmd_1g == IXGBE_AUTOC_1G_SFI) &&
--
2.8.4

View File

@ -0,0 +1,38 @@
From e64a0edb01812bb688c32ddda18eede344ffe163 Mon Sep 17 00:00:00 2001
From: Aaron Conole <aconole@redhat.com>
Date: Tue, 22 Mar 2016 17:37:18 -0400
Subject: [PATCH] ixgbe: fix uninitialized warning
Silence a compiler warning that this variable may be used uninitialized.
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
---
drivers/net/ixgbe/ixgbe_rxtx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 89c0eb9..b018ba7 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -1616,7 +1616,7 @@ ixgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
struct ixgbe_rx_entry *rxe;
struct ixgbe_scattered_rx_entry *sc_entry;
struct ixgbe_scattered_rx_entry *next_sc_entry;
- struct ixgbe_rx_entry *next_rxe;
+ struct ixgbe_rx_entry *next_rxe = NULL;
struct rte_mbuf *first_seg;
struct rte_mbuf *rxm;
struct rte_mbuf *nmb;
@@ -1793,7 +1793,7 @@ next_desc:
* the pointer to the first mbuf at the NEXTP entry in the
* sw_sc_ring and continue to parse the RX ring.
*/
- if (!eop) {
+ if (!eop && next_rxe) {
rxm->next = next_rxe->mbuf;
next_sc_entry->fbuf = first_seg;
goto next_desc;
--
2.8.4

View File

@ -0,0 +1,33 @@
From d3ff9b833441c6983534e7eb8df14fbe700d5488 Mon Sep 17 00:00:00 2001
From: Aaron Conole <aconole@redhat.com>
Date: Tue, 22 Mar 2016 17:37:17 -0400
Subject: [PATCH] ixgbe: fix constant sign in left shift operator
Tell the compiler to use an unsigned constant for the config shifts.
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
---
drivers/net/ixgbe/ixgbe_pf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
index a540343..a2787d9 100644
--- a/drivers/net/ixgbe/ixgbe_pf.c
+++ b/drivers/net/ixgbe/ixgbe_pf.c
@@ -236,9 +236,9 @@ int ixgbe_pf_host_configure(struct rte_eth_dev *eth_dev)
vfre_slot = (vf_num >> VFRE_SHIFT) > 0 ? 1 : 0;
/* Enable pools reserved to PF only */
- IXGBE_WRITE_REG(hw, IXGBE_VFRE(vfre_slot), (~0) << vfre_offset);
+ IXGBE_WRITE_REG(hw, IXGBE_VFRE(vfre_slot), (~0U) << vfre_offset);
IXGBE_WRITE_REG(hw, IXGBE_VFRE(vfre_slot ^ 1), vfre_slot - 1);
- IXGBE_WRITE_REG(hw, IXGBE_VFTE(vfre_slot), (~0) << vfre_offset);
+ IXGBE_WRITE_REG(hw, IXGBE_VFTE(vfre_slot), (~0U) << vfre_offset);
IXGBE_WRITE_REG(hw, IXGBE_VFTE(vfre_slot ^ 1), vfre_slot - 1);
/* PFDMA Tx General Switch Control Enables VMDQ loopback */
--
2.8.4

View File

@ -0,0 +1,72 @@
From 67f1325574e0acc45f277b5bcb88bb1653c32f37 Mon Sep 17 00:00:00 2001
From: Markos Chandras <mchandras@suse.de>
Date: Wed, 22 Jun 2016 23:32:29 +0100
Subject: [PATCH] e1000/base: Add missing braces to the 'if' statements
Add the missing braces to the 'if' statements to fix the misleading
identation. This also fixes the following build errors when building
with gcc >= 6:
drivers/net/e1000/base/e1000_phy.c:4156:2:
error: this 'if' clause does not guard... [-Werror=misleading-indentation]
if (locked)
^~
drivers/net/e1000/base/e1000_phy.c:4158:3:
note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
if (!ready)
^~
drivers/net/e1000/base/e1000_phy.c: In function 'e1000_write_phy_reg_mphy':
drivers/net/e1000/base/e1000_phy.c:4221:2:
error: this 'if' clause does not guard... [-Werror=misleading-indentation]
if (locked)
^~
drivers/net/e1000/base/e1000_phy.c:4223:3:
note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
if (!ready)
^~
Signed-off-by: Markos Chandras <mchandras@suse.de>
---
drivers/net/e1000/base/e1000_phy.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000/base/e1000_phy.c b/drivers/net/e1000/base/e1000_phy.c
index d43b7ce..33f478b 100644
--- a/drivers/net/e1000/base/e1000_phy.c
+++ b/drivers/net/e1000/base/e1000_phy.c
@@ -4153,12 +4153,13 @@ s32 e1000_read_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 *data)
*data = E1000_READ_REG(hw, E1000_MPHY_DATA);
/* Disable access to mPHY if it was originally disabled */
- if (locked)
+ if (locked) {
ready = e1000_is_mphy_ready(hw);
if (!ready)
return -E1000_ERR_PHY;
E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
E1000_MPHY_DIS_ACCESS);
+ }
return E1000_SUCCESS;
}
@@ -4218,12 +4219,13 @@ s32 e1000_write_phy_reg_mphy(struct e1000_hw *hw, u32 address, u32 data,
E1000_WRITE_REG(hw, E1000_MPHY_DATA, data);
/* Disable access to mPHY if it was originally disabled */
- if (locked)
+ if (locked) {
ready = e1000_is_mphy_ready(hw);
if (!ready)
return -E1000_ERR_PHY;
E1000_WRITE_REG(hw, E1000_MPHY_ADDR_CTRL,
E1000_MPHY_DIS_ACCESS);
+ }
return E1000_SUCCESS;
}
--
2.8.4

View File

@ -0,0 +1,32 @@
From d988d78fa2ea0ff0607d8cd089ed1d3ccddeed1c Mon Sep 17 00:00:00 2001
From: Aaron Conole <aconole@redhat.com>
Date: Tue, 22 Mar 2016 17:37:16 -0400
Subject: [PATCH] igb: fix constant sign in left shift operator
Tell the compiler to use an unsigned constant for the config shifts.
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
---
drivers/net/e1000/igb_pf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c
index 7f45a44..5845bc2 100644
--- a/drivers/net/e1000/igb_pf.c
+++ b/drivers/net/e1000/igb_pf.c
@@ -172,8 +172,8 @@ int igb_pf_host_configure(struct rte_eth_dev *eth_dev)
E1000_WRITE_REG(hw, E1000_VT_CTL, vtctl);
/* Enable pools reserved to PF only */
- E1000_WRITE_REG(hw, E1000_VFRE, (~0) << vf_num);
- E1000_WRITE_REG(hw, E1000_VFTE, (~0) << vf_num);
+ E1000_WRITE_REG(hw, E1000_VFRE, (~0U) << vf_num);
+ E1000_WRITE_REG(hw, E1000_VFTE, (~0U) << vf_num);
/* PFDMA Tx General Switch Control Enables VMDQ loopback */
if (hw->mac.type == e1000_i350)
--
2.8.4

View File

@ -0,0 +1,41 @@
From b3cadb2825422e37c35fdc78ea9497e4bdc95990 Mon Sep 17 00:00:00 2001
From: Aaron Conole <aconole@redhat.com>
Date: Tue, 22 Mar 2016 17:37:14 -0400
Subject: [PATCH] e1000: fix missing link interrupt check brackets
The device lsc interrupt check has a misleading whitespace around it which
can be improved by adding appropriate braces to the check. Since the ret
variable was checked after previous assignment, this introduces no functional
change.
Fixes: 921a72008f76 ("e1000: add Rx interrupt handler")
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
---
drivers/net/e1000/em_ethdev.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 1f0a7f4..9b5e1af 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -666,13 +666,14 @@ eth_em_start(struct rte_eth_dev *dev)
if (rte_intr_allow_others(intr_handle)) {
/* check if lsc interrupt is enabled */
- if (dev->data->dev_conf.intr_conf.lsc != 0)
+ if (dev->data->dev_conf.intr_conf.lsc != 0) {
ret = eth_em_interrupt_setup(dev);
if (ret) {
PMD_INIT_LOG(ERR, "Unable to setup interrupts");
em_dev_clear_queues(dev);
return ret;
}
+ }
} else {
rte_intr_callback_unregister(intr_handle,
eth_em_interrupt_handler,
--
2.8.4

View File

@ -0,0 +1,34 @@
From 29815f5a2331d361593ec62f3a54d154423a192d Mon Sep 17 00:00:00 2001
From: Aaron Conole <aconole@redhat.com>
Date: Tue, 22 Mar 2016 17:37:12 -0400
Subject: [PATCH] app/test: fix missing brackets
The test application calls printf(...) with the suite->suite_name argument.
The intent (based on whitespace) in the printf is to check suite->suite_name
first and then apply the printf. This doesn't happen due to missing brackets.
Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
---
app/test/test.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/test/test.c b/app/test/test.c
index f35b304..ccad0e3 100644
--- a/app/test/test.c
+++ b/app/test/test.c
@@ -162,9 +162,10 @@ unit_test_suite_runner(struct unit_test_suite *suite)
int test_success;
unsigned total = 0, executed = 0, skipped = 0, succeeded = 0, failed = 0;
- if (suite->suite_name)
+ if (suite->suite_name) {
printf(" + ------------------------------------------------------- +\n");
printf(" + Test Suite : %s\n", suite->suite_name);
+ }
if (suite->setup)
if (suite->setup() != 0)
--
2.8.4

View File

@ -0,0 +1,82 @@
From e04f6a64f158a2163fc47000b19d33d20a23e299 Mon Sep 17 00:00:00 2001
From: Panu Matilainen <pmatilai@redhat.com>
Date: Thu, 10 Mar 2016 15:49:55 +0200
Subject: [PATCH] examples/ip_pipeline: use unsigned constants for left shift
operations
Tell the compiler to use unsigned constants for left shift ops,
otherwise building with gcc >= 6.0 fails due to multiple warnings like:
warning: left shift of negative value [-Wshift-negative-value]
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
examples/ip_pipeline/pipeline/pipeline_common_fe.c | 4 ++--
examples/ip_pipeline/pipeline/pipeline_firewall.c | 4 ++--
examples/ip_pipeline/pipeline/pipeline_routing.c | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/examples/ip_pipeline/pipeline/pipeline_common_fe.c b/examples/ip_pipeline/pipeline/pipeline_common_fe.c
index bffc9a4..a691d42 100644
--- a/examples/ip_pipeline/pipeline/pipeline_common_fe.c
+++ b/examples/ip_pipeline/pipeline/pipeline_common_fe.c
@@ -337,7 +337,7 @@ app_link_config(struct app_params *app,
return -1;
}
- netmask = (~0) << (32 - depth);
+ netmask = (~0U) << (32 - depth);
host = ip & netmask;
bcast = host | (~netmask);
@@ -889,7 +889,7 @@ print_link_info(struct app_link_params *p)
{
struct rte_eth_stats stats;
struct ether_addr *mac_addr;
- uint32_t netmask = (~0) << (32 - p->depth);
+ uint32_t netmask = (~0U) << (32 - p->depth);
uint32_t host = p->ip & netmask;
uint32_t bcast = host | (~netmask);
diff --git a/examples/ip_pipeline/pipeline/pipeline_firewall.c b/examples/ip_pipeline/pipeline/pipeline_firewall.c
index 3d7ea7a..320b25d 100644
--- a/examples/ip_pipeline/pipeline/pipeline_firewall.c
+++ b/examples/ip_pipeline/pipeline/pipeline_firewall.c
@@ -256,10 +256,10 @@ app_pipeline_firewall_key_check_and_normalize(struct pipeline_firewall_key *key)
return -1;
if (src_ip_depth)
- src_ip_netmask = (~0) << (32 - src_ip_depth);
+ src_ip_netmask = (~0U) << (32 - src_ip_depth);
if (dst_ip_depth)
- dst_ip_netmask = ((~0) << (32 - dst_ip_depth));
+ dst_ip_netmask = ((~0U) << (32 - dst_ip_depth));
key->key.ipv4_5tuple.src_ip &= src_ip_netmask;
key->key.ipv4_5tuple.dst_ip &= dst_ip_netmask;
diff --git a/examples/ip_pipeline/pipeline/pipeline_routing.c b/examples/ip_pipeline/pipeline/pipeline_routing.c
index 6354730..eab89f2 100644
--- a/examples/ip_pipeline/pipeline/pipeline_routing.c
+++ b/examples/ip_pipeline/pipeline/pipeline_routing.c
@@ -319,7 +319,7 @@ app_pipeline_routing_add_route(struct app_params *app,
if ((depth == 0) || (depth > 32))
return -1;
- netmask = (~0) << (32 - depth);
+ netmask = (~0U) << (32 - depth);
key->key.ipv4.ip &= netmask;
/* data */
@@ -421,7 +421,7 @@ app_pipeline_routing_delete_route(struct app_params *app,
if ((depth == 0) || (depth > 32))
return -1;
- netmask = (~0) << (32 - depth);
+ netmask = (~0U) << (32 - depth);
key->key.ipv4.ip &= netmask;
}
break;
--
2.8.4

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Jun 23 09:56:05 UTC 2016 - mchandras@suse.de
- Add upstream patches to fix building with gcc >= 6
* 0100-kni-fix-build-with-gcc-6.patch
* 0101-ixgbe-fix-uninitialized-warning.patch
* 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch
* 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch
* 0104-igb-fix-constant-sign-in-left-shift-operator.patch
* 0105-e1000-fix-missing-link-interrupt-check-brackets.patch
* 0106-app-test-fix-missing-brackets.patch
* 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch
-------------------------------------------------------------------
Tue Jun 14 10:04:09 UTC 2016 - ndas@suse.de

View File

@ -99,8 +99,29 @@ Patch33: 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch
#PATCH-FIX-UPSTREAM 0034-virtio-fix-restart.patch
Patch34: 0034-virtio-fix-restart.patch
# PATCH-FIX-UPSTREAM: 0099-mk-fix-gcc-5-version-on-suse.patch
#
# Patches for build fixes
#
#PATCH-FIX-UPSTREAM: 0099-mk-fix-gcc-5-version-on-suse.patch
Patch99: 0099-mk-fix-gcc-5-version-on-suse.patch
#PATCH-FIX-UPSTREAM: 0100-kni-fix-build-with-gcc-6.patch
Patch100: 0100-kni-fix-build-with-gcc-6.patch
#PATCH-FIX-UPSTREAM: 0101-ixgbe-fix-uninitialized-warning.patch
Patch101: 0101-ixgbe-fix-uninitialized-warning.patch
#PATCH-FIX-UPSTREAM: 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch
Patch102: 0102-ixgbe-fix-constant-sign-in-left-shift-operator.patch
#PATCH-FIX-OPENSUSE: 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch
#Not merged yet: http://dpdk.org/dev/patchwork/patch/14268/
Patch103: 0103-e1000-base-Add-missing-braces-to-the-if-statements.patch
#PATCH-FIX-UPSTREAM: 0104-igb-fix-constant-sign-in-left-shift-operator.patch
Patch104: 0104-igb-fix-constant-sign-in-left-shift-operator.patch
#PATCH-FIX-UPSTREAM: 0105-e1000-fix-missing-link-interrupt-check-brackets.patch
Patch105: 0105-e1000-fix-missing-link-interrupt-check-brackets.patch
#PATCH-FIX-UPSTREAM: 0106-app-test-fix-missing-brackets.patch
Patch106: 0106-app-test-fix-missing-brackets.patch
#PATCH-FIX-UPSTREAM: 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch
Patch107: 0107-examples-ip_pipeline-use-unsigned-constants-for-left.patch
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: libnuma-devel
@ -198,7 +219,16 @@ as L2 and L3 forwarding.
%patch33 -p1
%patch34 -p1
# Build fixes
%patch99 -p1 -z .rtetoolchain
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
%patch105 -p1
%patch106 -p1
%patch107 -p1
%build
# set up a method for modifying the resulting .config file