Lines Matching refs:indir
1053 static int ethtool_copy_validate_indir(u32 *indir, void __user *useraddr, in ethtool_copy_validate_indir() argument
1059 if (copy_from_user(indir, useraddr, size * sizeof(indir[0]))) in ethtool_copy_validate_indir()
1064 if (indir[i] >= rx_rings->data) in ethtool_copy_validate_indir()
1083 u32 *indir; in ethtool_get_max_rxfh_channel() local
1093 indir = kcalloc(dev_size, sizeof(indir[0]), GFP_USER); in ethtool_get_max_rxfh_channel()
1094 if (!indir) in ethtool_get_max_rxfh_channel()
1097 ret = dev->ethtool_ops->get_rxfh(dev, indir, NULL, NULL); in ethtool_get_max_rxfh_channel()
1102 current_max = max(current_max, indir[dev_size]); in ethtool_get_max_rxfh_channel()
1107 kfree(indir); in ethtool_get_max_rxfh_channel()
1115 u32 *indir; in ethtool_get_rxfh_indir() local
1141 indir = kcalloc(dev_size, sizeof(indir[0]), GFP_USER); in ethtool_get_rxfh_indir()
1142 if (!indir) in ethtool_get_rxfh_indir()
1145 ret = dev->ethtool_ops->get_rxfh(dev, indir, NULL, NULL); in ethtool_get_rxfh_indir()
1151 indir, dev_size * sizeof(indir[0]))) in ethtool_get_rxfh_indir()
1155 kfree(indir); in ethtool_get_rxfh_indir()
1164 u32 *indir; in ethtool_set_rxfh_indir() local
1185 indir = kcalloc(dev_size, sizeof(indir[0]), GFP_USER); in ethtool_set_rxfh_indir()
1186 if (!indir) in ethtool_set_rxfh_indir()
1196 indir[i] = ethtool_rxfh_indir_default(i, rx_rings.data); in ethtool_set_rxfh_indir()
1198 ret = ethtool_copy_validate_indir(indir, in ethtool_set_rxfh_indir()
1206 ret = ops->set_rxfh(dev, indir, NULL, ETH_RSS_HASH_NO_CHANGE); in ethtool_set_rxfh_indir()
1217 kfree(indir); in ethtool_set_rxfh_indir()
1231 u32 *indir = NULL; in ethtool_get_rxfh() local
1265 indir_bytes = user_indir_size * sizeof(indir[0]); in ethtool_get_rxfh()
1272 indir = (u32 *)rss_config; in ethtool_get_rxfh()
1278 ret = dev->ethtool_ops->get_rxfh_context(dev, indir, hkey, in ethtool_get_rxfh()
1282 ret = dev->ethtool_ops->get_rxfh(dev, indir, hkey, &dev_hfunc); in ethtool_get_rxfh()
1308 u32 *indir = NULL, indir_bytes = 0; in ethtool_set_rxfh() local
1344 indir_bytes = dev_indir_size * sizeof(indir[0]); in ethtool_set_rxfh()
1361 indir = (u32 *)rss_config; in ethtool_set_rxfh()
1362 ret = ethtool_copy_validate_indir(indir, in ethtool_set_rxfh()
1370 indir = (u32 *)rss_config; in ethtool_set_rxfh()
1372 indir[i] = ethtool_rxfh_indir_default(i, rx_rings.data); in ethtool_set_rxfh()
1389 ret = ops->set_rxfh_context(dev, indir, hkey, rxfh.hfunc, in ethtool_set_rxfh()
1392 ret = ops->set_rxfh(dev, indir, hkey, rxfh.hfunc); in ethtool_set_rxfh()