Lines Matching refs:rxfh
720 struct ethtool_rxfh rxfh; in ethtool_get_rxfh() local
736 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_get_rxfh()
738 user_indir_size = rxfh.indir_size; in ethtool_get_rxfh()
739 user_key_size = rxfh.key_size; in ethtool_get_rxfh()
742 if (rxfh.rss_context || rxfh.rsvd8[0] || rxfh.rsvd8[1] || in ethtool_get_rxfh()
743 rxfh.rsvd8[2] || rxfh.rsvd32) in ethtool_get_rxfh()
746 rxfh.indir_size = dev_indir_size; in ethtool_get_rxfh()
747 rxfh.key_size = dev_key_size; in ethtool_get_rxfh()
748 if (copy_to_user(useraddr, &rxfh, sizeof(rxfh))) in ethtool_get_rxfh()
772 &dev_hfunc, sizeof(rxfh.hfunc))) { in ethtool_get_rxfh()
791 struct ethtool_rxfh rxfh; in ethtool_set_rxfh() local
806 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_set_rxfh()
810 if (rxfh.rss_context || rxfh.rsvd8[0] || rxfh.rsvd8[1] || in ethtool_set_rxfh()
811 rxfh.rsvd8[2] || rxfh.rsvd32) in ethtool_set_rxfh()
817 if ((rxfh.indir_size && in ethtool_set_rxfh()
818 rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE && in ethtool_set_rxfh()
819 rxfh.indir_size != dev_indir_size) || in ethtool_set_rxfh()
820 (rxfh.key_size && (rxfh.key_size != dev_key_size)) || in ethtool_set_rxfh()
821 (rxfh.indir_size == ETH_RXFH_INDIR_NO_CHANGE && in ethtool_set_rxfh()
822 rxfh.key_size == 0 && rxfh.hfunc == ETH_RSS_HASH_NO_CHANGE)) in ethtool_set_rxfh()
825 if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) in ethtool_set_rxfh()
828 rss_config = kzalloc(indir_bytes + rxfh.key_size, GFP_USER); in ethtool_set_rxfh()
840 if (rxfh.indir_size && in ethtool_set_rxfh()
841 rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) { in ethtool_set_rxfh()
846 rxfh.indir_size); in ethtool_set_rxfh()
849 } else if (rxfh.indir_size == 0) { in ethtool_set_rxfh()
855 if (rxfh.key_size) { in ethtool_set_rxfh()
859 rxfh.key_size)) { in ethtool_set_rxfh()
865 ret = ops->set_rxfh(dev, indir, hkey, rxfh.hfunc); in ethtool_set_rxfh()