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],