patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Gautam Dawar <gdawar@solarflare.com>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/sfc/base: enable chained multicast on all EF10 cards' has been queued to LTS release 18.11.3
Date: Mon, 24 Jun 2019 16:25:09 +0100	[thread overview]
Message-ID: <20190624152525.19349-45-ktraynor@redhat.com> (raw)
In-Reply-To: <20190624152525.19349-1-ktraynor@redhat.com>

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 06/27/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/177260deb95d3667737dea60e2e836353e879c83

Thanks.

Kevin Traynor

---
From 177260deb95d3667737dea60e2e836353e879c83 Mon Sep 17 00:00:00 2001
From: Gautam Dawar <gdawar@solarflare.com>
Date: Mon, 10 Jun 2019 08:38:16 +0100
Subject: [PATCH] net/sfc/base: enable chained multicast on all EF10 cards

[ upstream commit 9b1d5e45c0a116209d6e35a5ff07618ec7673070 ]

Set WORKAROUND_BUG26807 which does the job.

Fix the misunderstanding in the Medford code: i.e. the workaround is
always supported by firmware, but the driver still needs to enable it.
Also, as it now applies to all EF10 controllers, the implementation is
moved to EF10 common place.

Fixes: 94190e3543bf ("net/sfc/base: import SFN8xxx family support")
Fixes: 2b38e7b7b7e1 ("net/sfc/base: add Medford2 support to NIC module")

Signed-off-by: Gautam Dawar <gdawar@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/sfc/base/ef10_nic.c     | 57 ++++++++++++++++++++++++++++-
 drivers/net/sfc/base/hunt_nic.c     | 41 +--------------------
 drivers/net/sfc/base/medford2_nic.c |  3 --
 drivers/net/sfc/base/medford_nic.c  |  3 --
 4 files changed, 58 insertions(+), 46 deletions(-)

diff --git a/drivers/net/sfc/base/ef10_nic.c b/drivers/net/sfc/base/ef10_nic.c
index 50e23b7d4..540121756 100644
--- a/drivers/net/sfc/base/ef10_nic.c
+++ b/drivers/net/sfc/base/ef10_nic.c
@@ -1749,4 +1749,54 @@ fail1:
 }
 
+static	__checkReturn	efx_rc_t
+ef10_set_workaround_bug26807(
+	__in		efx_nic_t *enp)
+{
+	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
+	uint32_t flags;
+	efx_rc_t rc;
+
+	/*
+	 * If the bug26807 workaround is enabled, then firmware has enabled
+	 * support for chained multicast filters. Firmware will reset (FLR)
+	 * functions which have filters in the hardware filter table when the
+	 * workaround is enabled/disabled.
+	 *
+	 * We must recheck if the workaround is enabled after inserting the
+	 * first hardware filter, in case it has been changed since this check.
+	 */
+	rc = efx_mcdi_set_workaround(enp, MC_CMD_WORKAROUND_BUG26807,
+	    B_TRUE, &flags);
+	if (rc == 0) {
+		encp->enc_bug26807_workaround = B_TRUE;
+		if (flags & (1 << MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN)) {
+			/*
+			 * Other functions had installed filters before the
+			 * workaround was enabled, and they have been reset
+			 * by firmware.
+			 */
+			EFSYS_PROBE(bug26807_workaround_flr_done);
+			/* FIXME: bump MC warm boot count ? */
+		}
+	} else if (rc == EACCES) {
+		/*
+		 * Unprivileged functions cannot enable the workaround in older
+		 * firmware.
+		 */
+		encp->enc_bug26807_workaround = B_FALSE;
+	} else if ((rc == ENOTSUP) || (rc == ENOENT)) {
+		encp->enc_bug26807_workaround = B_FALSE;
+	} else {
+		goto fail1;
+	}
+
+	return (0);
+
+fail1:
+	EFSYS_PROBE1(fail1, efx_rc_t, rc);
+
+	return (rc);
+}
+
 static	__checkReturn	efx_rc_t
 ef10_nic_board_cfg(
@@ -1907,11 +1957,16 @@ ef10_nic_board_cfg(
 	encp->enc_privilege_mask = mask;
 
+	if ((rc = ef10_set_workaround_bug26807(enp)) != 0)
+		goto fail11;
+
 	/* Get remaining controller-specific board config */
 	if ((rc = enop->eno_board_cfg(enp)) != 0)
 		if (rc != EACCES)
-			goto fail11;
+			goto fail12;
 
 	return (0);
 
+fail12:
+	EFSYS_PROBE(fail12);
 fail11:
 	EFSYS_PROBE(fail11);
diff --git a/drivers/net/sfc/base/hunt_nic.c b/drivers/net/sfc/base/hunt_nic.c
index ca30e90f7..abff18ebc 100644
--- a/drivers/net/sfc/base/hunt_nic.c
+++ b/drivers/net/sfc/base/hunt_nic.c
@@ -73,5 +73,4 @@ hunt_board_cfg(
 	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
 	efx_port_t *epp = &(enp->en_port);
-	uint32_t flags;
 	uint32_t sysclk, dpcpu_clk;
 	uint32_t bandwidth;
@@ -131,41 +130,7 @@ hunt_board_cfg(
 	}
 
-	/*
-	 * If the bug26807 workaround is enabled, then firmware has enabled
-	 * support for chained multicast filters. Firmware will reset (FLR)
-	 * functions which have filters in the hardware filter table when the
-	 * workaround is enabled/disabled.
-	 *
-	 * We must recheck if the workaround is enabled after inserting the
-	 * first hardware filter, in case it has been changed since this check.
-	 */
-	rc = efx_mcdi_set_workaround(enp, MC_CMD_WORKAROUND_BUG26807,
-	    B_TRUE, &flags);
-	if (rc == 0) {
-		encp->enc_bug26807_workaround = B_TRUE;
-		if (flags & (1 << MC_CMD_WORKAROUND_EXT_OUT_FLR_DONE_LBN)) {
-			/*
-			 * Other functions had installed filters before the
-			 * workaround was enabled, and they have been reset
-			 * by firmware.
-			 */
-			EFSYS_PROBE(bug26807_workaround_flr_done);
-			/* FIXME: bump MC warm boot count ? */
-		}
-	} else if (rc == EACCES) {
-		/*
-		 * Unprivileged functions cannot enable the workaround in older
-		 * firmware.
-		 */
-		encp->enc_bug26807_workaround = B_FALSE;
-	} else if ((rc == ENOTSUP) || (rc == ENOENT)) {
-		encp->enc_bug26807_workaround = B_FALSE;
-	} else {
-		goto fail3;
-	}
-
 	/* Get clock frequencies (in MHz). */
 	if ((rc = efx_mcdi_get_clock(enp, &sysclk, &dpcpu_clk)) != 0)
-		goto fail4;
+		goto fail3;
 
 	/*
@@ -203,5 +168,5 @@ hunt_board_cfg(
 
 	if ((rc = hunt_nic_get_required_pcie_bandwidth(enp, &bandwidth)) != 0)
-		goto fail5;
+		goto fail4;
 	encp->enc_required_pcie_bandwidth_mbps = bandwidth;
 
@@ -211,6 +176,4 @@ hunt_board_cfg(
 	return (0);
 
-fail5:
-	EFSYS_PROBE(fail5);
 fail4:
 	EFSYS_PROBE(fail4);
diff --git a/drivers/net/sfc/base/medford2_nic.c b/drivers/net/sfc/base/medford2_nic.c
index 6bc1e87cc..0012350b9 100644
--- a/drivers/net/sfc/base/medford2_nic.c
+++ b/drivers/net/sfc/base/medford2_nic.c
@@ -70,7 +70,4 @@ medford2_board_cfg(
 	}
 
-	/* Chained multicast is always enabled on Medford2 */
-	encp->enc_bug26807_workaround = B_TRUE;
-
 	/*
 	 * If the bug61265 workaround is enabled, then interrupt holdoff timers
diff --git a/drivers/net/sfc/base/medford_nic.c b/drivers/net/sfc/base/medford_nic.c
index bfe01ca93..be0814461 100644
--- a/drivers/net/sfc/base/medford_nic.c
+++ b/drivers/net/sfc/base/medford_nic.c
@@ -68,7 +68,4 @@ medford_board_cfg(
 	}
 
-	/* Chained multicast is always enabled on Medford */
-	encp->enc_bug26807_workaround = B_TRUE;
-
 	/*
 	 * If the bug61265 workaround is enabled, then interrupt holdoff timers
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:57.398218672 +0100
+++ 0045-net-sfc-base-enable-chained-multicast-on-all-EF10-ca.patch	2019-06-24 16:18:55.091429807 +0100
@@ -1 +1 @@
-From 9b1d5e45c0a116209d6e35a5ff07618ec7673070 Mon Sep 17 00:00:00 2001
+From 177260deb95d3667737dea60e2e836353e879c83 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9b1d5e45c0a116209d6e35a5ff07618ec7673070 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index e5e84690e..1d7e6d8c8 100644
+index 50e23b7d4..540121756 100644
@@ -30 +31 @@
-@@ -1753,4 +1753,54 @@ fail1:
+@@ -1749,4 +1749,54 @@ fail1:
@@ -85 +86 @@
-@@ -1911,11 +1961,16 @@ ef10_nic_board_cfg(
+@@ -1907,11 +1957,16 @@ ef10_nic_board_cfg(
@@ -104 +105 @@
-index 054d4f432..1e2b075ff 100644
+index ca30e90f7..abff18ebc 100644
@@ -156 +157 @@
-@@ -216,5 +181,5 @@ hunt_board_cfg(
+@@ -203,5 +168,5 @@ hunt_board_cfg(
@@ -163 +164 @@
-@@ -224,6 +189,4 @@ hunt_board_cfg(
+@@ -211,6 +176,4 @@ hunt_board_cfg(
@@ -171 +172 @@
-index 16621d190..c0d4c13b0 100644
+index 6bc1e87cc..0012350b9 100644
@@ -183 +184 @@
-index 01a346267..c2a0054c2 100644
+index bfe01ca93..be0814461 100644

  parent reply	other threads:[~2019-06-24 15:27 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ark: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/axgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bonding: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/cxgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/mlx5: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: remove useless check on mempool' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: fix in-order Rx with segmented packet' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix endianness in ring macros' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix ring type macro name' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix variable width in endian conversion' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/failsafe: fix reported device info' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: fix assigning NUMA node to IO queue' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix packet drop' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix interrupt flood' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix memory leak' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix link state' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'ethdev: fix Tx prepare documentation to use positive errno' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/atlantic: fix Tx prepare to set positive rte_errno' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/fm10k: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/iavf: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/qede: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/vmxnet3: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: remove flow count action support' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/enic: remove flow locks' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' " Kevin Traynor
2019-06-25  3:42   ` Somnath Kotur
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix xstats' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix interrupt vector initialization' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix icc build' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/ixgbevf: add full link status check option' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'bus/pci: fix TOCTOU for sysfs access' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'doc: fix typo in EAL guide' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'telemetry: fix memory leak' " Kevin Traynor
2019-06-24 15:25 ` Kevin Traynor [this message]
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix signed/unsigned mismatch' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix shift by more bits than field width' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/netvsc: initialize VF spinlock' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: fix dropped packets statistics name' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: remove empty queue stats mapping set devops' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix queue memory leak on error' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap port IO for legacy device' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap device on initialization error' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vdpa: remove trace of legacy linuxapp' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: add Tx preparation' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: move VLAN tag insertion to Tx prepare' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix memory leak in in-order Rx' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost: fix missing include' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused function' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix logically dead code' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix inferred misuse of enum' " Kevin Traynor

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=20190624152525.19349-45-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=arybchenko@solarflare.com \
    --cc=gdawar@solarflare.com \
    --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 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).