]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-5.0/nfp-flower-replace-cfi-with-vlan-present.patch
5.0-stable patches
[thirdparty/kernel/stable-queue.git] / queue-5.0 / nfp-flower-replace-cfi-with-vlan-present.patch
1 From foo@baz Sat Apr 20 16:43:09 CEST 2019
2 From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
3 Date: Mon, 1 Apr 2019 19:36:33 -0700
4 Subject: nfp: flower: replace CFI with vlan present
5
6 From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
7
8 [ Upstream commit f7ee799a51ddbcc205ef615fe424fb5084e9e0aa ]
9
10 Replace vlan CFI bit with a vlan present bit that indicates the
11 presence of a vlan tag. Previously the driver incorrectly assumed
12 that an vlan id of 0 is not matchable, therefore we indicate vlan
13 presence with a vlan present bit.
14
15 Fixes: 5571e8c9f241 ("nfp: extend flower matching capabilities")
16 Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
17 Signed-off-by: Louis Peens <louis.peens@netronome.com>
18 Signed-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