From 2de599de082d9e868604a5e1e4da30dc94872d72 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Fri, 5 Apr 2019 07:17:43 +0200 Subject: [PATCH] rebase patches on top of Ubuntu-4.15.0-48.51 (generated with debian/scripts/import-upstream-tag) Signed-off-by: Thomas Lamprecht --- ...ides-for-missing-ACS-capabilities-4..patch | 2 +- ...ckaging-retpoline-add-safe-usage-hin.patch | 4 +- ...timeouts-when-interface-is-brought-u.patch | 64 ------------------- ...event-overlapping-tx_timeout-recover.patch | 58 ----------------- 4 files changed, 3 insertions(+), 125 deletions(-) delete mode 100644 patches/kernel/0008-i40e-Fix-for-Tx-timeouts-when-interface-is-brought-u.patch delete mode 100644 patches/kernel/0009-i40e-prevent-overlapping-tx_timeout-recover.patch diff --git a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch index 1c3fc09..7f9b368 100644 --- a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch +++ b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch @@ -54,7 +54,7 @@ Signed-off-by: Fabian Grünbichler 2 files changed, 110 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 43b61d87c9a3..00bc6786e6e0 100644 +index db924bca64f4..cd4dc6a4e6f2 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -3067,6 +3067,15 @@ diff --git a/patches/kernel/0007-Revert-UBUNTU-Packaging-retpoline-add-safe-usage-hin.patch b/patches/kernel/0007-Revert-UBUNTU-Packaging-retpoline-add-safe-usage-hin.patch index 2aabb41..09d0807 100644 --- a/patches/kernel/0007-Revert-UBUNTU-Packaging-retpoline-add-safe-usage-hin.patch +++ b/patches/kernel/0007-Revert-UBUNTU-Packaging-retpoline-add-safe-usage-hin.patch @@ -19,10 +19,10 @@ Signed-off-by: Fabian Grünbichler 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build -index e79e11fbd22c..36247e983f4b 100644 +index 1b07341eda2c..419fe6fdad17 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build -@@ -297,27 +297,19 @@ objtool_dep = $(objtool_obj) \ +@@ -295,27 +295,19 @@ objtool_dep = $(objtool_obj) \ $(wildcard include/config/orc/unwinder.h \ include/config/stack/validation.h) diff --git a/patches/kernel/0008-i40e-Fix-for-Tx-timeouts-when-interface-is-brought-u.patch b/patches/kernel/0008-i40e-Fix-for-Tx-timeouts-when-interface-is-brought-u.patch deleted file mode 100644 index 1b78db3..0000000 --- a/patches/kernel/0008-i40e-Fix-for-Tx-timeouts-when-interface-is-brought-u.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martyna Szapar -Date: Tue, 7 Aug 2018 17:11:23 -0700 -Subject: [PATCH] i40e: Fix for Tx timeouts when interface is brought up if DCB - is enabled - -If interface is connected to switch port configured for DCB there are -TX timeouts when bringing up interface. Problem started appearing after -adding in i40e driver code mqprio hardware offload mode. In function -i40e_vsi_configure_bw_alloc was added resetting BW rate which should -be executing when mqprio qdisc is removed but was also when there was -no mqprio qdisc added and DCB was enabled. In this patch was added -additional check for DCB flag so now when DCB is enabled the correct -DCB configs from before mqprio patch are restored. - -Signed-off-by: Martyna Szapar -Tested-by: Andrew Bowers -Signed-off-by: Jeff Kirsher -Signed-off-by: Thomas Lamprecht ---- - drivers/net/ethernet/intel/i40e/i40e_main.c | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c -index 08f7bd9001bc..7895a0af37e6 100644 ---- a/drivers/net/ethernet/intel/i40e/i40e_main.c -+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c -@@ -5219,15 +5219,17 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc, - u8 *bw_share) - { - struct i40e_aqc_configure_vsi_tc_bw_data bw_data; -+ struct i40e_pf *pf = vsi->back; - i40e_status ret; - int i; - -- if (vsi->back->flags & I40E_FLAG_TC_MQPRIO) -+ /* There is no need to reset BW when mqprio mode is on. */ -+ if (pf->flags & I40E_FLAG_TC_MQPRIO) - return 0; -- if (!vsi->mqprio_qopt.qopt.hw) { -+ if (!vsi->mqprio_qopt.qopt.hw && !(pf->flags & I40E_FLAG_DCB_ENABLED)) { - ret = i40e_set_bw_limit(vsi, vsi->seid, 0); - if (ret) -- dev_info(&vsi->back->pdev->dev, -+ dev_info(&pf->pdev->dev, - "Failed to reset tx rate for vsi->seid %u\n", - vsi->seid); - return ret; -@@ -5236,12 +5238,11 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc, - for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) - bw_data.tc_bw_credits[i] = bw_share[i]; - -- ret = i40e_aq_config_vsi_tc_bw(&vsi->back->hw, vsi->seid, &bw_data, -- NULL); -+ ret = i40e_aq_config_vsi_tc_bw(&pf->hw, vsi->seid, &bw_data, NULL); - if (ret) { -- dev_info(&vsi->back->pdev->dev, -+ dev_info(&pf->pdev->dev, - "AQ command Config VSI BW allocation per TC failed = %d\n", -- vsi->back->hw.aq.asq_last_status); -+ pf->hw.aq.asq_last_status); - return -EINVAL; - } - diff --git a/patches/kernel/0009-i40e-prevent-overlapping-tx_timeout-recover.patch b/patches/kernel/0009-i40e-prevent-overlapping-tx_timeout-recover.patch deleted file mode 100644 index 4841683..0000000 --- a/patches/kernel/0009-i40e-prevent-overlapping-tx_timeout-recover.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Alan Brady -Date: Mon, 29 Oct 2018 11:27:21 -0700 -Subject: [PATCH] i40e: prevent overlapping tx_timeout recover - -If a TX hang occurs, we attempt to recover by incrementally resetting. -If we're starved for CPU time, it's possible the reset doesn't actually -complete (or even fire) before another tx_timeout fires causing us to -fly through the different resets without actually doing them. - -This adds a bit to set and check if a timeout recovery is already -pending and, if so, bail out of tx_timeout. The bit will get cleared at -the end of i40e_rebuild when reset is complete. - -Signed-off-by: Alan Brady -Tested-by: Andrew Bowers -Signed-off-by: Jeff Kirsher -Signed-off-by: Thomas Lamprecht ---- - drivers/net/ethernet/intel/i40e/i40e.h | 1 + - drivers/net/ethernet/intel/i40e/i40e_main.c | 5 +++++ - 2 files changed, 6 insertions(+) - -diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h -index a68b914776c7..09452e4b4877 100644 ---- a/drivers/net/ethernet/intel/i40e/i40e.h -+++ b/drivers/net/ethernet/intel/i40e/i40e.h -@@ -145,6 +145,7 @@ enum i40e_state_t { - __I40E_MDD_EVENT_PENDING, - __I40E_VFLR_EVENT_PENDING, - __I40E_RESET_RECOVERY_PENDING, -+ __I40E_TIMEOUT_RECOVERY_PENDING, - __I40E_MISC_IRQ_REQUESTED, - __I40E_RESET_INTR_RECEIVED, - __I40E_REINIT_REQUESTED, -diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c -index 7895a0af37e6..874fd143c351 100644 ---- a/drivers/net/ethernet/intel/i40e/i40e_main.c -+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c -@@ -365,6 +365,10 @@ static void i40e_tx_timeout(struct net_device *netdev) - (pf->tx_timeout_last_recovery + netdev->watchdog_timeo))) - return; /* don't do any new action before the next timeout */ - -+ /* don't kick off another recovery if one is already pending */ -+ if (test_and_set_bit(__I40E_TIMEOUT_RECOVERY_PENDING, pf->state)) -+ return; -+ - if (tx_ring) { - head = i40e_get_head(tx_ring); - /* Read interrupt register */ -@@ -9478,6 +9482,7 @@ static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired) - clear_bit(__I40E_RESET_FAILED, pf->state); - clear_recovery: - clear_bit(__I40E_RESET_RECOVERY_PENDING, pf->state); -+ clear_bit(__I40E_TIMEOUT_RECOVERY_PENDING, pf->state); - } - - /** -- 2.39.2