]> git.baikalelectronics.ru Git - kernel.git/commit
ice: Fix interrupt moderation settings getting cleared
authorMichal Wilczynski <michal.wilczynski@intel.com>
Sun, 8 May 2022 23:33:48 +0000 (19:33 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 May 2022 07:57:32 +0000 (09:57 +0200)
commitaa9f9eb51722076a8855158086b1430344241edf
treeef058a4cec062a153f8a74e16247d344ae58744a
parent0749d990dde3d874dae89584d255e6eb78f91fae
ice: Fix interrupt moderation settings getting cleared

[ Upstream commit 6463b3520bbb6b40590f8095916a390dc579aa33 ]

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: 7756f2da2ae9 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/ice/ice_lib.c
drivers/net/ethernet/intel/ice/ice_txrx.h