Lines Matching refs:indir
1031 static int ethtool_copy_validate_indir(u32 *indir, void __user *useraddr,
1037 if (copy_from_user(indir, useraddr, array_size(size, sizeof(indir[0]))))
1042 if (indir[i] >= rx_rings->data)
1062 u32 *indir;
1088 indir = kcalloc(dev_size, sizeof(indir[0]), GFP_USER);
1089 if (!indir)
1092 ret = dev->ethtool_ops->get_rxfh(dev, indir, NULL, NULL);
1098 indir, dev_size * sizeof(indir[0])))
1102 kfree(indir);
1111 u32 *indir;
1132 indir = kcalloc(dev_size, sizeof(indir[0]), GFP_USER);
1133 if (!indir)
1143 indir[i] = ethtool_rxfh_indir_default(i, rx_rings.data);
1145 ret = ethtool_copy_validate_indir(indir,
1153 ret = ops->set_rxfh(dev, indir, NULL, ETH_RSS_HASH_NO_CHANGE);
1164 kfree(indir);
1178 u32 *indir = NULL;
1212 indir_bytes = user_indir_size * sizeof(indir[0]);
1219 indir = (u32 *)rss_config;
1225 ret = dev->ethtool_ops->get_rxfh_context(dev, indir, hkey,
1229 ret = dev->ethtool_ops->get_rxfh(dev, indir, hkey, &dev_hfunc);
1255 u32 *indir = NULL, indir_bytes = 0;
1279 /* If either indir, hash key or function is valid, proceed further.
1280 * Must request at least one change: indir size, hash key or function.
1291 indir_bytes = dev_indir_size * sizeof(indir[0]);
1302 /* rxfh.indir_size == 0 means reset the indir table to default (master
1308 indir = (u32 *)rss_config;
1309 ret = ethtool_copy_validate_indir(indir,
1317 indir = (u32 *)rss_config;
1319 indir[i] = ethtool_rxfh_indir_default(i, rx_rings.data);
1336 ret = ops->set_rxfh_context(dev, indir, hkey, rxfh.hfunc,
1339 ret = ops->set_rxfh(dev, indir, hkey, rxfh.hfunc);