rxnfc 1658 drivers/net/dsa/mv88e6xxx/chip.c struct ethtool_rxnfc *rxnfc, u32 *rule_locs) rxnfc 1660 drivers/net/dsa/mv88e6xxx/chip.c struct ethtool_rx_flow_spec *fs = &rxnfc->fs; rxnfc 1668 drivers/net/dsa/mv88e6xxx/chip.c switch (rxnfc->cmd) { rxnfc 1670 drivers/net/dsa/mv88e6xxx/chip.c rxnfc->data = 0; rxnfc 1671 drivers/net/dsa/mv88e6xxx/chip.c rxnfc->data |= RX_CLS_LOC_SPECIAL; rxnfc 1672 drivers/net/dsa/mv88e6xxx/chip.c rxnfc->rule_cnt = 0; rxnfc 1675 drivers/net/dsa/mv88e6xxx/chip.c rxnfc->rule_cnt++; rxnfc 1687 drivers/net/dsa/mv88e6xxx/chip.c rxnfc->data = 0; rxnfc 1688 drivers/net/dsa/mv88e6xxx/chip.c rxnfc->rule_cnt = 0; rxnfc 1691 drivers/net/dsa/mv88e6xxx/chip.c rule_locs[rxnfc->rule_cnt++] = id; rxnfc 1705 drivers/net/dsa/mv88e6xxx/chip.c struct ethtool_rxnfc *rxnfc) rxnfc 1707 drivers/net/dsa/mv88e6xxx/chip.c struct ethtool_rx_flow_spec *fs = &rxnfc->fs; rxnfc 1714 drivers/net/dsa/mv88e6xxx/chip.c switch (rxnfc->cmd) { rxnfc 519 drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c struct ethtool_rxnfc *rxnfc, u32 *rule_locs) rxnfc 523 drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c switch (rxnfc->cmd) { rxnfc 525 drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c rxnfc->data = pdata->rx_ring_count; rxnfc 634 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c struct ethtool_rxnfc *rxnfc, u32 *rule_locs) rxnfc 640 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c switch (rxnfc->cmd) { rxnfc 646 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->data = priv->rx_hash_fields; rxnfc 649 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->data = dpaa2_eth_queue_count(priv); rxnfc 652 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->rule_cnt = 0; rxnfc 653 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->rule_cnt = num_rules(priv); rxnfc 654 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->data = max_rules; rxnfc 657 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c if (rxnfc->fs.location >= max_rules) rxnfc 659 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->fs.location = array_index_nospec(rxnfc->fs.location, rxnfc 661 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c if (!priv->cls_rules[rxnfc->fs.location].in_use) rxnfc 663 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->fs = priv->cls_rules[rxnfc->fs.location].fs; rxnfc 669 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c if (j == rxnfc->rule_cnt) rxnfc 673 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->rule_cnt = j; rxnfc 674 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c rxnfc->data = max_rules; rxnfc 684 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c struct ethtool_rxnfc *rxnfc) rxnfc 688 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c switch (rxnfc->cmd) { rxnfc 690 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c if ((rxnfc->data & DPAA2_RXH_SUPPORTED) != rxnfc->data) rxnfc 692 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c err = dpaa2_eth_set_hash(net_dev, rxnfc->data); rxnfc 695 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c err = update_cls_rule(net_dev, &rxnfc->fs, rxnfc->fs.location); rxnfc 698 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c err = update_cls_rule(net_dev, NULL, rxnfc->fs.location); rxnfc 276 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c static int enetc_get_rsshash(struct ethtool_rxnfc *rxnfc) rxnfc 292 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c if (rxnfc->flow_type >= ARRAY_SIZE(rsshash)) rxnfc 295 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->data = rsshash[rxnfc->flow_type]; rxnfc 383 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c static int enetc_get_rxnfc(struct net_device *ndev, struct ethtool_rxnfc *rxnfc, rxnfc 389 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c switch (rxnfc->cmd) { rxnfc 391 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->data = priv->num_rx_rings; rxnfc 395 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c return enetc_get_rsshash(rxnfc); rxnfc 398 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->data = priv->si->num_fs_entries; rxnfc 400 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->rule_cnt = 0; rxnfc 403 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->rule_cnt++; rxnfc 406 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c if (rxnfc->fs.location >= priv->si->num_fs_entries) rxnfc 410 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->fs = priv->cls_rules[rxnfc->fs.location].fs; rxnfc 414 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->data = priv->si->num_fs_entries; rxnfc 420 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c if (j == rxnfc->rule_cnt) rxnfc 425 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->rule_cnt = j; rxnfc 434 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c static int enetc_set_rxnfc(struct net_device *ndev, struct ethtool_rxnfc *rxnfc) rxnfc 439 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c switch (rxnfc->cmd) { rxnfc 441 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c if (rxnfc->fs.location >= priv->si->num_fs_entries) rxnfc 444 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c if (rxnfc->fs.ring_cookie >= priv->num_rx_rings && rxnfc 445 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c rxnfc->fs.ring_cookie != RX_CLS_FLOW_DISC) rxnfc 448 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c err = enetc_set_cls_entry(priv->si, &rxnfc->fs, true); rxnfc 451 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c priv->cls_rules[rxnfc->fs.location].fs = rxnfc->fs; rxnfc 452 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c priv->cls_rules[rxnfc->fs.location].used = 1; rxnfc 455 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c if (rxnfc->fs.location >= priv->si->num_fs_entries) rxnfc 458 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c err = enetc_set_cls_entry(priv->si, &rxnfc->fs, false); rxnfc 461 drivers/net/ethernet/freescale/enetc/enetc_ethtool.c priv->cls_rules[rxnfc->fs.location].used = 0; rxnfc 881 drivers/net/ethernet/marvell/mvpp2/mvpp2.h struct ethtool_rxnfc rxnfc; rxnfc 1331 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c struct ethtool_rxnfc *rxnfc) rxnfc 1335 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c if (rxnfc->fs.location >= MVPP2_N_RFS_ENTRIES_PER_FLOW) rxnfc 1338 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c efs = port->rfs_rules[rxnfc->fs.location]; rxnfc 1342 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c memcpy(rxnfc, &efs->rxnfc, sizeof(efs->rxnfc)); rxnfc 1406 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c memcpy(&efs->rxnfc, info, sizeof(*info)); rxnfc 1551 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c struct ethtool_rxnfc *rxnfc; rxnfc 1564 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c rxnfc = &port->rfs_rules[i]->rxnfc; rxnfc 1565 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c if (!(rxnfc->fs.flow_type & FLOW_RSS) || rxnfc 1566 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c rxnfc->rss_context != port_ctx) rxnfc 1569 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c ret = mvpp2_ethtool_cls_rule_del(port, rxnfc); rxnfc 1573 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c rxnfc->fs.location); rxnfc 306 drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.h struct ethtool_rxnfc *rxnfc); rxnfc 541 drivers/net/ethernet/microchip/lan743x_ethtool.c struct ethtool_rxnfc *rxnfc, rxnfc 544 drivers/net/ethernet/microchip/lan743x_ethtool.c switch (rxnfc->cmd) { rxnfc 546 drivers/net/ethernet/microchip/lan743x_ethtool.c rxnfc->data = 0; rxnfc 547 drivers/net/ethernet/microchip/lan743x_ethtool.c switch (rxnfc->flow_type) { rxnfc 550 drivers/net/ethernet/microchip/lan743x_ethtool.c rxnfc->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; rxnfc 553 drivers/net/ethernet/microchip/lan743x_ethtool.c rxnfc->data |= RXH_IP_SRC | RXH_IP_DST; rxnfc 558 drivers/net/ethernet/microchip/lan743x_ethtool.c rxnfc->data = LAN743X_USED_RX_CHANNELS; rxnfc 775 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c struct ethtool_rxnfc *rxnfc, u32 *rule_locs) rxnfc 779 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c switch (rxnfc->cmd) { rxnfc 781 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c rxnfc->data = priv->plat->rx_queues_to_use; rxnfc 3095 net/socket.c struct ethtool_rxnfc __user *rxnfc = NULL; rxnfc 3133 net/socket.c rxnfc = compat_alloc_user_space(buf_size); rxnfc 3140 net/socket.c ifr.ifr_data = convert_in ? rxnfc : (void __user *)compat_rxnfc; rxnfc 3149 net/socket.c sizeof(rxnfc->fs.m_ext)); rxnfc 3156 net/socket.c if (copy_in_user(rxnfc, compat_rxnfc, rxnfc 3157 net/socket.c (void __user *)(&rxnfc->fs.m_ext + 1) - rxnfc 3158 net/socket.c (void __user *)rxnfc) || rxnfc 3159 net/socket.c copy_in_user(&rxnfc->fs.ring_cookie, rxnfc 3161 net/socket.c (void __user *)(&rxnfc->fs.location + 1) - rxnfc 3162 net/socket.c (void __user *)&rxnfc->fs.ring_cookie)) rxnfc 3165 net/socket.c if (put_user(rule_cnt, &rxnfc->rule_cnt)) rxnfc 3167 net/socket.c } else if (copy_in_user(&rxnfc->rule_cnt, rxnfc 3169 net/socket.c sizeof(rxnfc->rule_cnt))) rxnfc 3178 net/socket.c if (copy_in_user(compat_rxnfc, rxnfc, rxnfc 3179 net/socket.c (const void __user *)(&rxnfc->fs.m_ext + 1) - rxnfc 3180 net/socket.c (const void __user *)rxnfc) || rxnfc 3182 net/socket.c &rxnfc->fs.ring_cookie, rxnfc 3183 net/socket.c (const void __user *)(&rxnfc->fs.location + 1) - rxnfc 3184 net/socket.c (const void __user *)&rxnfc->fs.ring_cookie) || rxnfc 3185 net/socket.c copy_in_user(&compat_rxnfc->rule_cnt, &rxnfc->rule_cnt, rxnfc 3186 net/socket.c sizeof(rxnfc->rule_cnt))) rxnfc 3198 net/socket.c if (get_user(actual_rule_cnt, &rxnfc->rule_cnt)) rxnfc 3203 net/socket.c &rxnfc->rule_locs[0],