rxfh             1150 net/core/ethtool.c 	struct ethtool_rxfh rxfh;
rxfh             1166 net/core/ethtool.c 	if (copy_from_user(&rxfh, useraddr, sizeof(rxfh)))
rxfh             1168 net/core/ethtool.c 	user_indir_size = rxfh.indir_size;
rxfh             1169 net/core/ethtool.c 	user_key_size = rxfh.key_size;
rxfh             1172 net/core/ethtool.c 	if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32)
rxfh             1175 net/core/ethtool.c 	if (rxfh.rss_context && !ops->get_rxfh_context)
rxfh             1178 net/core/ethtool.c 	rxfh.indir_size = dev_indir_size;
rxfh             1179 net/core/ethtool.c 	rxfh.key_size = dev_key_size;
rxfh             1180 net/core/ethtool.c 	if (copy_to_user(useraddr, &rxfh, sizeof(rxfh)))
rxfh             1199 net/core/ethtool.c 	if (rxfh.rss_context)
rxfh             1202 net/core/ethtool.c 							 rxfh.rss_context);
rxfh             1209 net/core/ethtool.c 			 &dev_hfunc, sizeof(rxfh.hfunc))) {
rxfh             1228 net/core/ethtool.c 	struct ethtool_rxfh rxfh;
rxfh             1244 net/core/ethtool.c 	if (copy_from_user(&rxfh, useraddr, sizeof(rxfh)))
rxfh             1248 net/core/ethtool.c 	if (rxfh.rsvd8[0] || rxfh.rsvd8[1] || rxfh.rsvd8[2] || rxfh.rsvd32)
rxfh             1251 net/core/ethtool.c 	if (rxfh.rss_context && !ops->set_rxfh_context)
rxfh             1257 net/core/ethtool.c 	if ((rxfh.indir_size &&
rxfh             1258 net/core/ethtool.c 	     rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE &&
rxfh             1259 net/core/ethtool.c 	     rxfh.indir_size != dev_indir_size) ||
rxfh             1260 net/core/ethtool.c 	    (rxfh.key_size && (rxfh.key_size != dev_key_size)) ||
rxfh             1261 net/core/ethtool.c 	    (rxfh.indir_size == ETH_RXFH_INDIR_NO_CHANGE &&
rxfh             1262 net/core/ethtool.c 	     rxfh.key_size == 0 && rxfh.hfunc == ETH_RSS_HASH_NO_CHANGE))
rxfh             1265 net/core/ethtool.c 	if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE)
rxfh             1268 net/core/ethtool.c 	rss_config = kzalloc(indir_bytes + rxfh.key_size, GFP_USER);
rxfh             1281 net/core/ethtool.c 	if (rxfh.indir_size &&
rxfh             1282 net/core/ethtool.c 	    rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE) {
rxfh             1287 net/core/ethtool.c 						  rxfh.indir_size);
rxfh             1290 net/core/ethtool.c 	} else if (rxfh.indir_size == 0) {
rxfh             1291 net/core/ethtool.c 		if (rxfh.rss_context == 0) {
rxfh             1300 net/core/ethtool.c 	if (rxfh.key_size) {
rxfh             1304 net/core/ethtool.c 				   rxfh.key_size)) {
rxfh             1310 net/core/ethtool.c 	if (rxfh.rss_context)
rxfh             1311 net/core/ethtool.c 		ret = ops->set_rxfh_context(dev, indir, hkey, rxfh.hfunc,
rxfh             1312 net/core/ethtool.c 					    &rxfh.rss_context, delete);
rxfh             1314 net/core/ethtool.c 		ret = ops->set_rxfh(dev, indir, hkey, rxfh.hfunc);
rxfh             1319 net/core/ethtool.c 			 &rxfh.rss_context, sizeof(rxfh.rss_context)))
rxfh             1322 net/core/ethtool.c 	if (!rxfh.rss_context) {
rxfh             1324 net/core/ethtool.c 		if (rxfh.indir_size == 0)
rxfh             1326 net/core/ethtool.c 		else if (rxfh.indir_size != ETH_RXFH_INDIR_NO_CHANGE)