Lines Matching refs:rxfh
1147 /* indicate whether rxfh was set to default */
1165 struct ethtool_rxfh rxfh;
1181 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh)))
1183 user_indir_size = rxfh.indir_size;
1184 user_key_size = rxfh.key_size;
1187 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32)
1190 if (rxfh.rss_context && !ops->get_rxfh_context)
1193 rxfh.indir_size = dev_indir_size;
1194 rxfh.key_size = dev_key_size;
1195 if (copy_to_user(useraddr, &rxfh, sizeof(rxfh)))
1214 if (rxfh.rss_context)
1217 rxfh.rss_context);
1224 &dev_hfunc, sizeof(rxfh.hfunc))) {
1243 struct ethtool_rxfh rxfh;
1259 if (copy_from_user(&rxfh, useraddr, sizeof(rxfh)))
1263 if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32)
1266 if (rxfh.rss_context && !ops->set_rxfh_context)
1272 if ((rxfh.indir_size &&
1273 rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE &&
1274 rxfh.indir_size != dev_indir_size) ||
1275 (rxfh.key_size && (rxfh.key_size != dev_key_size)) ||
1276 (rxfh.indir_size == ETH_RXFH_INDIR_NO_CHANGE &&
1277 rxfh.key_size == 0 && rxfh.hfunc == ETH_RSS_HASH_NO_CHANGE))
1280 if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE)
1283 rss_config = kzalloc(indir_bytes + rxfh.key_size, GFP_USER);
1292 /* rxfh.indir_size == 0 means reset the indir table to default (master
1294 * rxfh.indir_size == ETH_RXFH_INDIR_NO_CHANGE means leave it unchanged.
1296 if (rxfh.indir_size &&
1297 rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) {
1302 rxfh.indir_size);
1305 } else if (rxfh.indir_size == 0) {
1306 if (rxfh.rss_context == 0) {
1315 if (rxfh.key_size) {
1319 rxfh.key_size)) {
1325 if (rxfh.rss_context)
1326 ret = ops->set_rxfh_context(dev, indir, hkey, rxfh.hfunc,
1327 &rxfh.rss_context, delete);
1329 ret = ops->set_rxfh(dev, indir, hkey, rxfh.hfunc);
1334 &rxfh.rss_context, sizeof(rxfh.rss_context)))
1337 if (!rxfh.rss_context) {
1338 /* indicate whether rxfh was set to default */
1339 if (rxfh.indir_size == 0)
1341 else if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE)