Lines Matching defs:rxfh_dev

1351 	struct ethtool_rxfh_param rxfh_dev = {};
1361 rxfh_dev.indir_size = ops->get_rxfh_indir_size(dev);
1362 if (rxfh_dev.indir_size == 0)
1370 if (user_size != 0 && user_size != rxfh_dev.indir_size)
1373 rxfh_dev.indir = kcalloc(rxfh_dev.indir_size,
1374 sizeof(rxfh_dev.indir[0]), GFP_USER);
1375 if (!rxfh_dev.indir)
1385 u32 *indir = rxfh_dev.indir;
1387 for (i = 0; i < rxfh_dev.indir_size; i++)
1390 ret = ethtool_copy_validate_indir(rxfh_dev.indir,
1393 rxfh_dev.indir_size);
1398 rxfh_dev.hfunc = ETH_RSS_HASH_NO_CHANGE;
1401 ret = ops->set_rxfh(dev, &rxfh_dev, extack);
1414 kfree(rxfh_dev.indir);
1422 struct ethtool_rxfh_param rxfh_dev = {};
1435 rxfh_dev.indir_size = ops->get_rxfh_indir_size(dev);
1437 rxfh_dev.key_size = ops->get_rxfh_key_size(dev);
1451 rxfh.indir_size = rxfh_dev.indir_size;
1452 rxfh.key_size = rxfh_dev.key_size;
1456 if ((user_indir_size && user_indir_size != rxfh_dev.indir_size) ||
1457 (user_key_size && user_key_size != rxfh_dev.key_size))
1460 indir_bytes = user_indir_size * sizeof(rxfh_dev.indir[0]);
1467 rxfh_dev.indir = (u32 *)rss_config;
1470 rxfh_dev.key = rss_config + indir_bytes;
1479 if (rxfh_dev.indir)
1480 memcpy(rxfh_dev.indir, ethtool_rxfh_context_indir(ctx),
1483 rxfh_dev.key_size = 0;
1485 if (rxfh_dev.key)
1486 memcpy(rxfh_dev.key,
1489 rxfh_dev.hfunc = ctx->hfunc;
1491 rxfh_dev.input_xfrm = ctx->input_xfrm;
1494 ret = dev->ethtool_ops->get_rxfh(dev, &rxfh_dev);
1500 &rxfh_dev.hfunc, sizeof(rxfh.hfunc))) {
1504 &rxfh_dev.input_xfrm,
1509 &rxfh_dev.key_size,
1531 struct ethtool_rxfh_param rxfh_dev = {};
1584 indir_bytes = dev_indir_size * sizeof(rxfh_dev.indir[0]);
1610 rxfh_dev.indir = (u32 *)rss_config;
1611 rxfh_dev.indir_size = dev_indir_size;
1612 ret = ethtool_copy_validate_indir(rxfh_dev.indir,
1622 rxfh_dev.indir = (u32 *)rss_config;
1623 rxfh_dev.indir_size = dev_indir_size;
1624 indir = rxfh_dev.indir;
1629 rxfh_dev.rss_delete = true;
1634 rxfh_dev.key_size = dev_key_size;
1635 rxfh_dev.key = rss_config + indir_bytes;
1636 if (copy_from_user(rxfh_dev.key,
1650 if (rxfh.rss_context && rxfh_dev.rss_delete) {
1659 if (rxfh_dev.rss_delete) {
1685 rxfh_dev.hfunc = rxfh.hfunc;
1686 rxfh_dev.rss_context = rxfh.rss_context;
1687 rxfh_dev.input_xfrm = rxfh.input_xfrm;
1691 ret = ops->set_rxfh(dev, &rxfh_dev, extack);
1694 ret = ops->create_rxfh_context(dev, ctx, &rxfh_dev, extack);
1696 WARN_ON_ONCE(!ret && !rxfh_dev.key && ops->rxfh_per_ctx_key &&
1699 } else if (rxfh_dev.rss_delete) {
1705 ret = ops->modify_rxfh_context(dev, ctx, &rxfh_dev, extack);
1718 &rxfh_dev.rss_context, sizeof(rxfh_dev.rss_context)))
1721 if (!rxfh_dev.rss_context) {
1729 if (rxfh_dev.rss_delete) {
1733 if (rxfh_dev.indir) {
1735 ethtool_rxfh_context_indir(ctx)[i] = rxfh_dev.indir[i];
1740 if (rxfh_dev.key) {
1741 memcpy(ethtool_rxfh_context_key(ctx), rxfh_dev.key,
1745 if (rxfh_dev.hfunc != ETH_RSS_HASH_NO_CHANGE)
1746 ctx->hfunc = rxfh_dev.hfunc;
1747 if (rxfh_dev.input_xfrm != RXH_XFRM_NO_CHANGE)
1748 ctx->input_xfrm = rxfh_dev.input_xfrm;