+ if (key) { > + WARN_ON_ONCE(bnx2x_get_rxfh_key_size(dev) != > T_ETH_RSS_KEY * 4); > + bnx2x_get_rss_key(&bp->rss_conf_obj, key); > + }
This doesn’t work VFs [the PF has the RSS configuration object in their case; They don't have it], which is fine as 'key' should never be set for them [since you're adding bnx2x_get_rxfh_key_size() to ethtool ops only for PFs]. But this probably still worth a comment, though. > - memcpy(rss.rss_key, rss_tlv->rss_key, sizeof(rss_tlv->rss_key)); > + memcpy(&vf->rss_conf_obj.rss_key, rss_tlv->rss_key, > +sizeof(rss_tlv->rss_key)); > rss.rss_obj = &vf->rss_conf_obj; > rss.rss_result_mask = rss_tlv->rss_result_mask; The change you've applied in bnx2x_setup_rss() should affect here as well, meaning the PF would copy the parameters into the PF's RSS configuration object belonging to the VF from the parameter. This change would cause the PF to configure the VF's RSS key as all-zeros [as parameters were initially zeroed].