ice: Fix interrupt moderation settings getting cleared
authorMichal Wilczynski <michal.wilczynski@intel.com>
Sun, 8 May 2022 23:33:48 +0000 (19:33 -0400)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 17 May 2022 17:37:09 +0000 (10:37 -0700)
commitbf13502ed5f941b0777b3fd1e24dac5d93f3886c
tree1f468adf23dbff53479232a6899686bb1382a528
parent31b6298fd8e29effe9ed6b77351ac5969be56ce0
ice: Fix interrupt moderation settings getting cleared

Adaptive-rx and Adaptive-tx are interrupt moderation settings
that can be enabled/disabled using ethtool:
ethtool -C ethX adaptive-rx on/off adaptive-tx on/off

Unfortunately those settings are getting cleared after
changing number of queues, or in ethtool world 'channels':
ethtool -L ethX rx 1 tx 1

Clearing was happening due to introduction of bit fields
in ice_ring_container struct. This way only itr_setting
bits were rebuilt during ice_vsi_rebuild_set_coalesce().

Introduce an anonymous struct of bitfields and create a
union to refer to them as a single variable.
This way variable can be easily saved and restored.

Fixes: 61dc79ced7aa ("ice: Restore interrupt throttle settings after VSI rebuild")
Signed-off-by: Michal Wilczynski <michal.wilczynski@intel.com>
Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_lib.c
drivers/net/ethernet/intel/ice/ice_txrx.h