]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/5.0.10/nfp-flower-replace-cfi-with-vlan-present.patch
Fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 5.0.10 / nfp-flower-replace-cfi-with-vlan-present.patch
CommitLineData
0ee3da53
GKH
1From foo@baz Sat Apr 20 16:43:09 CEST 2019
2From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
3Date: Mon, 1 Apr 2019 19:36:33 -0700
4Subject: nfp: flower: replace CFI with vlan present
5
6From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
7
8[ Upstream commit f7ee799a51ddbcc205ef615fe424fb5084e9e0aa ]
9
10Replace vlan CFI bit with a vlan present bit that indicates the
11presence of a vlan tag. Previously the driver incorrectly assumed
12that an vlan id of 0 is not matchable, therefore we indicate vlan
13presence with a vlan present bit.
14
15Fixes: 5571e8c9f241 ("nfp: extend flower matching capabilities")
16Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
17Signed-off-by: Louis Peens <louis.peens@netronome.com>
18Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19---
20 drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 2 +-
21 drivers/net/ethernet/netronome/nfp/flower/match.c | 14 ++++++--------
22 2 files changed, 7 insertions(+), 9 deletions(-)
23
24--- a/drivers/net/ethernet/netronome/nfp/flower/cmsg.h
25+++ b/drivers/net/ethernet/netronome/nfp/flower/cmsg.h
26@@ -26,7 +26,7 @@
27 #define NFP_FLOWER_LAYER2_GENEVE_OP BIT(6)
28
29 #define NFP_FLOWER_MASK_VLAN_PRIO GENMASK(15, 13)
30-#define NFP_FLOWER_MASK_VLAN_CFI BIT(12)
31+#define NFP_FLOWER_MASK_VLAN_PRESENT BIT(12)
32 #define NFP_FLOWER_MASK_VLAN_VID GENMASK(11, 0)
33
34 #define NFP_FLOWER_MASK_MPLS_LB GENMASK(31, 12)
35--- a/drivers/net/ethernet/netronome/nfp/flower/match.c
36+++ b/drivers/net/ethernet/netronome/nfp/flower/match.c
37@@ -26,14 +26,12 @@ nfp_flower_compile_meta_tci(struct nfp_f
38 FLOW_DISSECTOR_KEY_VLAN,
39 target);
40 /* Populate the tci field. */
41- if (flow_vlan->vlan_id || flow_vlan->vlan_priority) {
42- tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
43- flow_vlan->vlan_priority) |
44- FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
45- flow_vlan->vlan_id) |
46- NFP_FLOWER_MASK_VLAN_CFI;
47- frame->tci = cpu_to_be16(tmp_tci);
48- }
49+ tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
50+ tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
51+ flow_vlan->vlan_priority) |
52+ FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
53+ flow_vlan->vlan_id);
54+ frame->tci = cpu_to_be16(tmp_tci);
55 }
56 }
57