Commit d3ba9e6f authored by Andre Guedes's avatar Andre Guedes Committed by Jeff Kirsher

igc: Fix 'sw_idx' type in struct igc_nfc_rule

The 'sw_idx' field from 'struct igc_nfc_rule' is u16 type but it is
assigned an u32 value in igc_ethtool_init_nfc_rule(). This patch changes
'sw_idx' type to u32 so they match. Also, it makes more sense to call
this field 'location' since it holds the NFC rule location.
Signed-off-by: default avatarAndre Guedes <andre.guedes@intel.com>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 16fdc16c
...@@ -463,7 +463,7 @@ struct igc_nfc_filter { ...@@ -463,7 +463,7 @@ struct igc_nfc_filter {
struct igc_nfc_rule { struct igc_nfc_rule {
struct hlist_node nfc_node; struct hlist_node nfc_node;
struct igc_nfc_filter filter; struct igc_nfc_filter filter;
u16 sw_idx; u32 location;
u16 action; u16 action;
}; };
......
...@@ -940,11 +940,11 @@ static int igc_ethtool_get_nfc_rule(struct igc_adapter *adapter, ...@@ -940,11 +940,11 @@ static int igc_ethtool_get_nfc_rule(struct igc_adapter *adapter,
cmd->data = IGC_MAX_RXNFC_RULES; cmd->data = IGC_MAX_RXNFC_RULES;
hlist_for_each_entry(rule, &adapter->nfc_rule_list, nfc_node) { hlist_for_each_entry(rule, &adapter->nfc_rule_list, nfc_node) {
if (fsp->location <= rule->sw_idx) if (fsp->location <= rule->location)
break; break;
} }
if (!rule || fsp->location != rule->sw_idx) if (!rule || fsp->location != rule->location)
return -EINVAL; return -EINVAL;
if (!rule->filter.match_flags) if (!rule->filter.match_flags)
...@@ -991,7 +991,7 @@ static int igc_ethtool_get_nfc_rules(struct igc_adapter *adapter, ...@@ -991,7 +991,7 @@ static int igc_ethtool_get_nfc_rules(struct igc_adapter *adapter,
hlist_for_each_entry(rule, &adapter->nfc_rule_list, nfc_node) { hlist_for_each_entry(rule, &adapter->nfc_rule_list, nfc_node) {
if (cnt == cmd->rule_cnt) if (cnt == cmd->rule_cnt)
return -EMSGSIZE; return -EMSGSIZE;
rule_locs[cnt] = rule->sw_idx; rule_locs[cnt] = rule->location;
cnt++; cnt++;
} }
...@@ -1240,7 +1240,7 @@ int igc_disable_nfc_rule(struct igc_adapter *adapter, ...@@ -1240,7 +1240,7 @@ int igc_disable_nfc_rule(struct igc_adapter *adapter,
static int igc_ethtool_update_nfc_rule(struct igc_adapter *adapter, static int igc_ethtool_update_nfc_rule(struct igc_adapter *adapter,
struct igc_nfc_rule *input, struct igc_nfc_rule *input,
u16 sw_idx) u32 location)
{ {
struct igc_nfc_rule *rule, *parent; struct igc_nfc_rule *rule, *parent;
int err = -EINVAL; int err = -EINVAL;
...@@ -1250,13 +1250,13 @@ static int igc_ethtool_update_nfc_rule(struct igc_adapter *adapter, ...@@ -1250,13 +1250,13 @@ static int igc_ethtool_update_nfc_rule(struct igc_adapter *adapter,
hlist_for_each_entry(rule, &adapter->nfc_rule_list, nfc_node) { hlist_for_each_entry(rule, &adapter->nfc_rule_list, nfc_node) {
/* hash found, or no matching entry */ /* hash found, or no matching entry */
if (rule->sw_idx >= sw_idx) if (rule->location >= location)
break; break;
parent = rule; parent = rule;
} }
/* if there is an old rule occupying our place remove it */ /* if there is an old rule occupying our place remove it */
if (rule && rule->sw_idx == sw_idx) { if (rule && rule->location == location) {
if (!input) if (!input)
err = igc_disable_nfc_rule(adapter, rule); err = igc_disable_nfc_rule(adapter, rule);
...@@ -1289,7 +1289,7 @@ static void igc_ethtool_init_nfc_rule(struct igc_nfc_rule *rule, ...@@ -1289,7 +1289,7 @@ static void igc_ethtool_init_nfc_rule(struct igc_nfc_rule *rule,
INIT_HLIST_NODE(&rule->nfc_node); INIT_HLIST_NODE(&rule->nfc_node);
rule->action = fsp->ring_cookie; rule->action = fsp->ring_cookie;
rule->sw_idx = fsp->location; rule->location = fsp->location;
if ((fsp->flow_type & FLOW_EXT) && fsp->m_ext.vlan_tci) { if ((fsp->flow_type & FLOW_EXT) && fsp->m_ext.vlan_tci) {
rule->filter.vlan_tci = ntohs(fsp->h_ext.vlan_tci); rule->filter.vlan_tci = ntohs(fsp->h_ext.vlan_tci);
...@@ -1412,7 +1412,7 @@ static int igc_ethtool_add_nfc_rule(struct igc_adapter *adapter, ...@@ -1412,7 +1412,7 @@ static int igc_ethtool_add_nfc_rule(struct igc_adapter *adapter,
if (err) if (err)
goto err; goto err;
igc_ethtool_update_nfc_rule(adapter, rule, rule->sw_idx); igc_ethtool_update_nfc_rule(adapter, rule, rule->location);
spin_unlock(&adapter->nfc_rule_lock); spin_unlock(&adapter->nfc_rule_lock);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment