mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Przemek Kitszel b6143c9b07 ice: clean up __ice_aq_get_set_rss_lut()
Refactor __ice_aq_get_set_rss_lut() to improve reader experience and limit
misuse scenarios (undesired LUT size for given LUT type).

Allow only 3 RSS LUT type+size variants:
PF LUT sized 2048, GLOBAL LUT sized 512, and VSI LUT sized 64, which were
used on default flows prior to this commit.

Prior to the change, code was mixing the meaning of @params->lut_size and
@params->lut_type, flag assigning logic was cryptic, while long defines
made everything harder to follow.

Fix that by extracting some code out to separate helpers.
Drop some of "shift by 0" statements that originated from Intel's
internal HW documentation.

Drop some redundant VSI masks (since ice_is_vsi_valid() gives "valid" for
up to 0x300 VSIs).

After sweeping all the defines out of struct ice_aqc_get_set_rss_lut,
it fits into 7 lines.

Finally apply some cleanup to the callsite
(use of the new enums, tmp var for lengthy bit extraction).

Note that flags for 128 and 64 sized VSI LUT are the same,
and 64 is used everywhere in the code (updated to new enum here), it just
happened that there was 128 in flag name.

__ice_aq_get_set_rss_key() uses the same VSI valid bit, make constant
common for it and __ice_aq_get_set_rss_lut().

Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-08-07 13:01:29 -07:00
..
ice_adminq_cmd.h ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_arfs.c ice: add individual interrupt allocation 2023-05-16 09:38:38 -07:00
ice_arfs.h
ice_base.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-07-20 15:52:55 -07:00
ice_base.h
ice_cgu_regs.h
ice_common.c ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_common.h ice: Add get C827 PHY index function 2023-08-07 13:01:29 -07:00
ice_controlq.c ice: remove null checks before devm_kfree() calls 2023-06-22 10:30:34 -07:00
ice_controlq.h ice: reduce initial wait for control queue messages 2023-06-22 10:23:44 -07:00
ice_dcb_lib.c ice: Fix undersized tx_flags variable 2023-05-12 09:27:44 +01:00
ice_dcb_lib.h ice: Prevent set_channel from changing queues while RDMA active 2023-01-27 11:32:18 -08:00
ice_dcb_nl.c ice: enforce no DCB config changing when in bond 2023-07-27 10:56:32 -07:00
ice_dcb_nl.h
ice_dcb.c ice: Fix DSCP PFC TLV creation 2023-03-07 13:02:01 -08:00
ice_dcb.h ice: Handle LLDP MIB Pending change 2023-01-19 08:18:03 -08:00
ice_ddp.c ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_ddp.h overflow: Add struct_size_t() helper 2023-05-26 13:52:19 -07:00
ice_devids.h ice: support features on new E810T variants 2022-09-28 11:40:57 -07:00
ice_devlink.c devlink: move port_split/unsplit() ops into devlink_port_ops 2023-05-30 10:32:20 -07:00
ice_devlink.h ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler 2022-11-17 21:41:28 -08:00
ice_eswitch_br.c ice: Accept LAG netdevs in bridge offloads 2023-08-07 13:01:29 -07:00
ice_eswitch_br.h ice: implement static version of ageing 2023-07-24 08:53:42 -07:00
ice_eswitch.c ice: Implement basic eswitch bridge setup 2023-07-24 08:53:05 -07:00
ice_eswitch.h ice: use src VSI instead of src MAC in slow-path 2023-05-19 09:10:39 -07:00
ice_ethtool_fdir.c ice: Fix memory management in ice_ethtool_fdir.c 2023-07-24 17:07:51 -07:00
ice_ethtool.c ice: prevent NULL pointer deref during reload 2023-07-14 09:56:20 -07:00
ice_ethtool.h ice: update PHY type to ethtool link mode mapping 2023-05-17 08:43:01 -07:00
ice_fdir.c
ice_fdir.h
ice_flex_pipe.c ice: Reduce scope of variables 2023-01-19 08:18:03 -08:00
ice_flex_pipe.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flex_type.h ice: Move support DDP code out of ice_flex_pipe.c 2023-01-19 08:18:03 -08:00
ice_flow.c ice: remove null checks before devm_kfree() calls 2023-06-22 10:30:34 -07:00
ice_flow.h
ice_fltr.c ice: sync netdev filters after clearing VSI 2023-02-03 09:54:18 -08:00
ice_fltr.h
ice_fw_update.c
ice_fw_update.h
ice_gnss.c ice: Don't dereference NULL in ice_gnss_read error path 2023-06-08 08:38:56 -07:00
ice_gnss.h ice: make writes to /dev/gnssX synchronous 2023-06-07 10:51:58 +01:00
ice_hw_autogen.h ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_idc_int.h
ice_idc.c ice: add dynamic interrupt allocation 2023-05-16 09:38:38 -07:00
ice_irq.c ice: add dynamic interrupt allocation 2023-05-16 09:38:38 -07:00
ice_irq.h ice: add dynamic interrupt allocation 2023-05-16 09:38:38 -07:00
ice_lag.c ice: update reset path for SRIOV LAG support 2023-07-27 10:56:33 -07:00
ice_lag.h ice: update reset path for SRIOV LAG support 2023-07-27 10:56:33 -07:00
ice_lan_tx_rx.h ice: Remove and replace ice speed defines with ethtool.h versions 2022-11-23 08:59:42 -08:00
ice_lib.c ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_lib.h ice: Add driver support for firmware changes for LAG 2023-07-27 10:56:32 -07:00
ice_main.c ice: add FW load wait 2023-08-07 13:01:29 -07:00
ice_nvm.c ice: Remove cppcheck suppressions 2023-01-19 08:18:03 -08:00
ice_nvm.h ice: Add additional flags to ice_nvm_write_activate 2022-08-24 08:45:54 -07:00
ice_osdep.h
ice_pf_vsi_vlan_ops.c
ice_pf_vsi_vlan_ops.h
ice_protocol_type.h ice: Rename enum ice_pkt_flags values 2023-08-07 13:01:29 -07:00
ice_ptp_consts.h
ice_ptp_hw.c ice: make Tx and Rx vernier offset calibration independent 2022-12-08 13:15:03 -08:00
ice_ptp_hw.h ice: Add get C827 PHY index function 2023-08-07 13:01:29 -07:00
ice_ptp.c ice: introduce ICE_TX_TSTAMP_WORK enumeration 2023-06-08 10:20:12 -07:00
ice_ptp.h ice: introduce ICE_TX_TSTAMP_WORK enumeration 2023-06-08 10:20:12 -07:00
ice_repr.c ice: Implement basic eswitch bridge setup 2023-07-24 08:53:05 -07:00
ice_repr.h ice: Implement basic eswitch bridge setup 2023-07-24 08:53:05 -07:00
ice_sbq_cmd.h
ice_sched.c ice: changes to the interface with the HW and FW for SRIOV_VF+LAG 2023-07-27 10:56:32 -07:00
ice_sched.h ice: changes to the interface with the HW and FW for SRIOV_VF+LAG 2023-07-27 10:56:32 -07:00
ice_sriov.c ice: clean up freeing SR-IOV VFs 2023-06-22 10:29:31 -07:00
ice_sriov.h ice: move ice_is_malicious_vf() to ice_virtchnl.c 2023-03-13 11:06:06 -07:00
ice_switch.c ice: Rename enum ice_pkt_flags values 2023-08-07 13:01:29 -07:00
ice_switch.h ice: Add direction metadata 2023-08-07 13:01:29 -07:00
ice_tc_lib.c ice: Add direction metadata 2023-08-07 13:01:29 -07:00
ice_tc_lib.h ice: Fix tx queue rate limit when TCs are configured 2023-07-05 09:29:37 -07:00
ice_trace.h ice: add tracepoints for the switchdev bridge 2023-07-24 08:53:49 -07:00
ice_txrx_lib.c ice: fix W=1 headers mismatch 2023-03-28 09:42:05 -07:00
ice_txrx_lib.h ice: Micro-optimize .ndo_xdp_xmit() path 2023-02-13 19:13:13 +01:00
ice_txrx.c ice: recycle/free all of the fragments from multi-buffer frame 2023-06-01 09:59:39 -07:00
ice_txrx.h ice: Fix undersized tx_flags variable 2023-05-12 09:27:44 +01:00
ice_type.h ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_vf_lib_private.h ice: introduce ice_vf_init_host_cfg function 2023-02-06 09:41:56 -08:00
ice_vf_lib.c ice: use src VSI instead of src MAC in slow-path 2023-05-19 09:10:39 -07:00
ice_vf_lib.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-05-18 14:39:34 -07:00
ice_vf_mbx.c ice: merge ice_mbx_report_malvf with ice_mbx_vf_state_handler 2023-03-13 11:00:10 -07:00
ice_vf_mbx.h ice: initialize mailbox snapshot earlier in PF init 2023-03-13 11:06:05 -07:00
ice_vf_vsi_vlan_ops.c ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_vf_vsi_vlan_ops.h ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_virtchnl_allowlist.c ice: Add support Flex RXD 2022-10-27 13:23:43 +02:00
ice_virtchnl_allowlist.h
ice_virtchnl_fdir.c ice: Reset FDIR counter in FDIR init stage 2023-04-04 08:34:52 -07:00
ice_virtchnl_fdir.h
ice_virtchnl.c ice: clean up __ice_aq_get_set_rss_lut() 2023-08-07 13:01:29 -07:00
ice_virtchnl.h ice: call ice_is_malicious_vf() from ice_vc_process_vf_msg() 2023-03-13 11:06:06 -07:00
ice_vlan_mode.c ice: define meta data to match in switch 2023-05-19 08:57:43 -07:00
ice_vlan_mode.h
ice_vlan.h
ice_vsi_vlan_lib.c ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_vsi_vlan_lib.h ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_vsi_vlan_ops.c
ice_vsi_vlan_ops.h ice: implement bridge port vlan 2023-07-24 08:53:35 -07:00
ice_xsk.c ice: xsk: Tx multi-buffer support 2023-07-19 09:56:50 -07:00
ice_xsk.h ice: xsk: change batched Tx descriptor cleaning 2022-09-27 08:11:02 -07:00
ice.h ice: Add driver support for firmware changes for LAG 2023-07-27 10:56:32 -07:00
Makefile ice: Implement basic eswitch bridge setup 2023-07-24 08:53:05 -07:00