]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-5.1/ice-do-not-set-lb_en-for-prune-switch-rules.patch
fixes for 5.1
[thirdparty/kernel/stable-queue.git] / queue-5.1 / ice-do-not-set-lb_en-for-prune-switch-rules.patch
1 From a3605b1bf8e94d01d26a675ebc2ee78ef92f198d Mon Sep 17 00:00:00 2001
2 From: Christopher N Bednarz <christopher.n.bednarz@intel.com>
3 Date: Tue, 26 Feb 2019 16:35:16 -0800
4 Subject: ice: Do not set LB_EN for prune switch rules
5
6 [ Upstream commit b58dafbc6f1089942c1e74b8ab9c616fe06dbfac ]
7
8 LB_EN for prune switch rules was causing all TX traffic
9 to loopback to the internal switch and dropped. When
10 running bi-directional stress workloads with RDMA
11 the RDPU would hang blocking tx and rx traffic.
12
13 Signed-off-by: Christopher N Bednarz <christopher.n.bednarz@intel.com>
14 Reviewed-by: Bruce Allan <bruce.w.allan@intel.com>
15 Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
16 Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
17 Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
18 Signed-off-by: Sasha Levin <sashal@kernel.org>
19 ---
20 drivers/net/ethernet/intel/ice/ice_switch.c | 7 ++++++-
21 1 file changed, 6 insertions(+), 1 deletion(-)
22
23 diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c
24 index e40d5f34d59d..c5f6cfecc042 100644
25 --- a/drivers/net/ethernet/intel/ice/ice_switch.c
26 +++ b/drivers/net/ethernet/intel/ice/ice_switch.c
27 @@ -643,7 +643,12 @@ static void ice_fill_sw_info(struct ice_hw *hw, struct ice_fltr_info *fi)
28 fi->fltr_act == ICE_FWD_TO_VSI_LIST ||
29 fi->fltr_act == ICE_FWD_TO_Q ||
30 fi->fltr_act == ICE_FWD_TO_QGRP)) {
31 - fi->lb_en = true;
32 + /* Setting LB for prune actions will result in replicated
33 + * packets to the internal switch that will be dropped.
34 + */
35 + if (fi->lkup_type != ICE_SW_LKUP_VLAN)
36 + fi->lb_en = true;
37 +
38 /* Set lan_en to TRUE if
39 * 1. The switch is a VEB AND
40 * 2
41 --
42 2.20.1
43