net: mvpp2: cls: Extract the RSS context when parsing the ethtool rule
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Fri, 24 May 2019 10:05:53 +0000 (12:05 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 May 2019 23:38:15 +0000 (16:38 -0700)
ethtool_rx_flow_rule_create takes into parameter the ethtool flow spec,
which doesn't contain the rss context id. We therefore need to extract
it ourself before parsing the ethtool rule.

The FLOW_RSS flag is only set in info->fs.flow_type, and not
info->flow_type.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c

index c16e343..c1a83e9 100644 (file)
@@ -1281,6 +1281,12 @@ int mvpp2_ethtool_cls_rule_ins(struct mvpp2_port *port,
 
        input.fs = &info->fs;
 
+       /* We need to manually set the rss_ctx, since this info isn't present
+        * in info->fs
+        */
+       if (info->fs.flow_type & FLOW_RSS)
+               input.rss_ctx = info->rss_context;
+
        ethtool_rule = ethtool_rx_flow_rule_create(&input);
        if (IS_ERR(ethtool_rule)) {
                ret = PTR_ERR(ethtool_rule);