Lines Matching refs:rxfh
1178 struct ethtool_rxfh rxfh; in ethtool_get_rxfh() local
1194 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_get_rxfh()
1196 user_indir_size = rxfh.indir_size; in ethtool_get_rxfh()
1197 user_key_size = rxfh.key_size; in ethtool_get_rxfh()
1200 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32) in ethtool_get_rxfh()
1203 if (rxfh.rss_context && !ops->get_rxfh_context) in ethtool_get_rxfh()
1206 rxfh.indir_size = dev_indir_size; in ethtool_get_rxfh()
1207 rxfh.key_size = dev_key_size; in ethtool_get_rxfh()
1208 if (copy_to_user(useraddr, &rxfh, sizeof(rxfh))) in ethtool_get_rxfh()
1227 if (rxfh.rss_context) in ethtool_get_rxfh()
1230 rxfh.rss_context); in ethtool_get_rxfh()
1237 &dev_hfunc, sizeof(rxfh.hfunc))) { in ethtool_get_rxfh()
1256 struct ethtool_rxfh rxfh; in ethtool_set_rxfh() local
1272 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh))) in ethtool_set_rxfh()
1276 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32) in ethtool_set_rxfh()
1279 if (rxfh.rss_context && !ops->set_rxfh_context) in ethtool_set_rxfh()
1285 if ((rxfh.indir_size && in ethtool_set_rxfh()
1286 rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE && in ethtool_set_rxfh()
1287 rxfh.indir_size != dev_indir_size) || in ethtool_set_rxfh()
1288 (rxfh.key_size && (rxfh.key_size != dev_key_size)) || in ethtool_set_rxfh()
1289 (rxfh.indir_size == ETH_RXFH_INDIR_NO_CHANGE && in ethtool_set_rxfh()
1290 rxfh.key_size == 0 && rxfh.hfunc == ETH_RSS_HASH_NO_CHANGE)) in ethtool_set_rxfh()
1293 if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) in ethtool_set_rxfh()
1296 rss_config = kzalloc(indir_bytes + rxfh.key_size, GFP_USER); in ethtool_set_rxfh()
1309 if (rxfh.indir_size && in ethtool_set_rxfh()
1310 rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) { in ethtool_set_rxfh()
1315 rxfh.indir_size); in ethtool_set_rxfh()
1318 } else if (rxfh.indir_size == 0) { in ethtool_set_rxfh()
1319 if (rxfh.rss_context == 0) { in ethtool_set_rxfh()
1328 if (rxfh.key_size) { in ethtool_set_rxfh()
1332 rxfh.key_size)) { in ethtool_set_rxfh()
1338 if (rxfh.rss_context) in ethtool_set_rxfh()
1339 ret = ops->set_rxfh_context(dev, indir, hkey, rxfh.hfunc, in ethtool_set_rxfh()
1340 &rxfh.rss_context, delete); in ethtool_set_rxfh()
1342 ret = ops->set_rxfh(dev, indir, hkey, rxfh.hfunc); in ethtool_set_rxfh()
1347 &rxfh.rss_context, sizeof(rxfh.rss_context))) in ethtool_set_rxfh()
1350 if (!rxfh.rss_context) { in ethtool_set_rxfh()
1352 if (rxfh.indir_size == 0) in ethtool_set_rxfh()
1354 else if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) in ethtool_set_rxfh()