Message ID | 20180305204637.18277-10-saeedm@mellanox.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Mon, Mar 05, 2018 at 12:46:32PM -0800, Saeed Mahameed wrote: > From: Matan Barak <matanb@mellanox.com> > > The has_tag member will indicate whether a tag action was specified > in flow specification. It would be good to describe in the commit message why flow_act.flow_tag != MLX5_FS_DEFAULT_FLOW_TAG isn't good enough anymore. > Signed-off-by: Matan Barak <matanb@mellanox.com> > Reviewed-by: Aviad Yehezkel <aviadye@mellanox.com> > Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> > drivers/infiniband/hw/mlx5/main.c | 3 ++- > drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 1 + > drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 2 +- > include/linux/mlx5/fs.h | 1 + > 4 files changed, 5 insertions(+), 2 deletions(-) Assuming there is a good reason to do this: Acked-by: Jason Gunthorpe <jgg@mellanox.com> Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
T24gTW9uLCAyMDE4LTAzLTA1IGF0IDE0OjA3IC0wNzAwLCBKYXNvbiBHdW50aG9ycGUgd3JvdGU6 DQo+IE9uIE1vbiwgTWFyIDA1LCAyMDE4IGF0IDEyOjQ2OjMyUE0gLTA4MDAsIFNhZWVkIE1haGFt ZWVkIHdyb3RlOg0KPiA+IEZyb206IE1hdGFuIEJhcmFrIDxtYXRhbmJAbWVsbGFub3guY29tPg0K PiA+IA0KPiA+IFRoZSBoYXNfdGFnIG1lbWJlciB3aWxsIGluZGljYXRlIHdoZXRoZXIgYSB0YWcg YWN0aW9uIHdhcyBzcGVjaWZpZWQNCj4gPiBpbiBmbG93IHNwZWNpZmljYXRpb24uDQo+IA0KPiBJ dCB3b3VsZCBiZSBnb29kIHRvIGRlc2NyaWJlIGluIHRoZSBjb21taXQgbWVzc2FnZSB3aHkNCj4g DQo+ICBmbG93X2FjdC5mbG93X3RhZyAhPSBNTFg1X0ZTX0RFRkFVTFRfRkxPV19UQUcNCj4gDQo+ IGlzbid0IGdvb2QgZW5vdWdoIGFueW1vcmUuDQoNCkEgZmxvdyB0YWcgMCA9IE1MWDVfRlNfREVG QVVMVF9GTE9XX1RBRyBpcyBhc3N1bWVkIGEgdmFsaWQgZmxvdyB0YWcNCnRoYXQgaXMgY3VycmVu dGx5IHVzZWQgYnkgUkRNQSBkcml2ZXIsIHdoZXJlYXMgaW4gSFcgZmxvd190YWcgPSAwIG1lYW5z DQp0aGF0IHRoZSB1c2VyIGRvZXNuJ3QgY2FyZSBhYm91dCBmbG93X3RhZy4gSFcgYWx3YXlzIHBy b3ZpZGUgZmxvd190YWcgPQ0KMCBpZiBhbGwgZmxvd190YWdzIHJlcXVlc3RlZCBvbiBhIHNwZWNp ZmljIGZsb3cgYXJlIDAuDQoNClNvIHdlIG5lZWQgYSB3YXkgKGluIHRoZSBkcml2ZXIpIHRvIGRp ZmZlcmVudGlhdGUgYmV0d2VlbiBhIHVzZXIgcmVhbGx5DQpyZXF1ZXN0aW5nIGZsb3dfdGFnID0g MCBhbmQgYSB1c2VyIHdobyBkb2VzIG5vdCBjYXJlLCBpbiBvcmRlciB0byBiZQ0KYWJsZSB0byBy ZXBvcnQgY29uZmxpY3RpbmcgZmxvdyB0YWdzIG9uIGEgc3BlY2lmaWMgZmxvdy4NCg0KV2Ugd2ls bCBhZGQgdGhpcyB0byBjb21taXQgbWVzc2FnZS4NCg0KPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBN YXRhbiBCYXJhayA8bWF0YW5iQG1lbGxhbm94LmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogQXZpYWQg WWVoZXprZWwgPGF2aWFkeWVAbWVsbGFub3guY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPg0KPiA+ICBkcml2ZXJzL2luZmluaWJhbmQv aHcvbWx4NS9tYWluLmMgICAgICAgICAgICAgICAgIHwgMyArKy0NCj4gPiAgZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgICB8IDEgKw0KPiA+ICBkcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jIHwgMiArLQ0KPiA+ICBp bmNsdWRlL2xpbnV4L21seDUvZnMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMSArDQo+ ID4gIDQgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiAN Cj4gQXNzdW1pbmcgdGhlcmUgaXMgYSBnb29kIHJlYXNvbiB0byBkbyB0aGlzOg0KPiANCj4gQWNr ZWQtYnk6IEphc29uIEd1bnRob3JwZSA8amdnQG1lbGxhbm94LmNvbT4NCj4gDQo+IEphc29u -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index 1b305367a817..d50ace805995 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -2535,6 +2535,7 @@ static int parse_flow_attr(struct mlx5_core_dev *mdev, u32 *match_c, return -EINVAL; action->flow_tag = ib_spec->flow_tag.tag_id; + action->has_flow_tag = true; break; case IB_FLOW_SPEC_ACTION_DROP: if (FIELDS_NOT_SUPPORTED(ib_spec->drop, @@ -2847,7 +2848,7 @@ static struct mlx5_ib_flow_handler *_create_flow_rule(struct mlx5_ib_dev *dev, MLX5_FLOW_CONTEXT_ACTION_FWD_NEXT_PRIO; } - if (flow_act.flow_tag != MLX5_FS_DEFAULT_FLOW_TAG && + if (flow_act.has_flow_tag && (flow_attr->type == IB_FLOW_ATTR_ALL_DEFAULT || flow_attr->type == IB_FLOW_ATTR_MC_DEFAULT)) { mlx5_ib_warn(dev, "Flow tag %u and attribute type %x isn't allowed in leftovers\n", diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index fd98b0dc610f..eeff1fac77ef 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -675,6 +675,7 @@ mlx5e_tc_add_nic_flow(struct mlx5e_priv *priv, struct mlx5_flow_destination dest[2] = {}; struct mlx5_flow_act flow_act = { .action = attr->action, + .has_flow_tag = true, .flow_tag = attr->flow_tag, .encap_id = 0, }; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index c025c98700e4..d81da6920be8 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1443,7 +1443,7 @@ static int check_conflicting_ftes(struct fs_fte *fte, const struct mlx5_flow_act return -EEXIST; } - if (fte->flow_tag != flow_act->flow_tag) { + if (flow_act->has_flow_tag && fte->flow_tag != flow_act->flow_tag) { mlx5_core_warn(get_dev(&fte->node), "FTE flow tag %u already exists with different flow tag %u\n", fte->flow_tag, diff --git a/include/linux/mlx5/fs.h b/include/linux/mlx5/fs.h index a0b48afcb422..f580bc4c2443 100644 --- a/include/linux/mlx5/fs.h +++ b/include/linux/mlx5/fs.h @@ -141,6 +141,7 @@ void mlx5_destroy_flow_group(struct mlx5_flow_group *fg); struct mlx5_flow_act { u32 action; + bool has_flow_tag; u32 flow_tag; u32 encap_id; u32 modify_id;