linux/drivers/net/ethernet/intel/i40e
Jacob Keller d36e41dc78 i40e: separate hw_features from runtime changing flags
The number of flags found in pf->flags has grown quite large, and there
are a lot of different types of flags. Most of the flags are simply
hardware features which are enabled on some firmware or some MAC types.
Other flags are dynamic run-time flags which enable or disable certain
features of the driver.

Separate these two types of flags into pf->hw_features and pf->flags.
The hw_features list will contain a set of features which are enabled at
init time. This will not contain toggles or otherwise dynamically
changing features. These flags should not need atomic protections, as
they will be set once during init and then be essentially read only.

Everything else will remain in the flags variable. These flags may be
modified at any time during run time. A future patch may wish to convert
these flags into set_bit/clear_bit/test_bit or similar approach to
ensure atomic correctness.

The I40E_FLAG_MFP_ENABLED flag may be a good fit for hw_features but
currently is used by ethtool in the private flags settings, and thus has
been left as part of flags.

Additionally, I40E_FLAG_DCB_CAPABLE may be a good fit for the
hw_features but this patch has not tried to untangle it yet.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-08-25 14:46:15 -07:00
..
i40e_adminq_cmd.h i40e/i40evf: update WOL and I40E_AQC_ADDR_VALID_MASK flags 2017-06-20 18:17:10 -07:00
i40e_adminq.c i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_adminq.h i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_alloc.h
i40e_client.c i40e: use dev_dbg instead of dev_info when warning about missing routine 2017-06-20 18:17:10 -07:00
i40e_client.h i40e: KISS the client interface 2017-03-15 01:57:08 -07:00
i40e_common.c i40e: comment that udp_port must be in host byte order 2017-06-20 18:17:10 -07:00
i40e_dcb_nl.c
i40e_dcb.c i40e: Support firmware CEE DCB UP to TC map re-definition 2017-06-20 18:17:10 -07:00
i40e_dcb.h
i40e_debugfs.c i40e: use DECLARE_BITMAP for state fields 2017-04-30 04:48:13 -07:00
i40e_devids.h i40e: Add support for 25G devices 2016-12-06 20:59:43 -08:00
i40e_diag.c
i40e_diag.h
i40e_ethtool.c i40e: separate hw_features from runtime changing flags 2017-08-25 14:46:15 -07:00
i40e_fcoe.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
i40e_fcoe.h
i40e_hmc.c i40e: fix an uninitialized variable bug 2016-05-14 00:21:51 -07:00
i40e_hmc.h
i40e_lan_hmc.c
i40e_lan_hmc.h
i40e_main.c i40e: separate hw_features from runtime changing flags 2017-08-25 14:46:15 -07:00
i40e_nvm.c i40e: Handle admin Q timeout when releasing NVM 2017-07-26 03:25:19 -07:00
i40e_osdep.h i40e: Drop FCoE code from core driver files 2017-03-27 16:47:43 -07:00
i40e_prototype.h virtchnl: rename i40e to generic virtchnl 2017-06-01 14:08:53 -07:00
i40e_ptp.c i40e: separate hw_features from runtime changing flags 2017-08-25 14:46:15 -07:00
i40e_register.h
i40e_status.h
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-09 16:28:45 -07:00
i40e_txrx.h i40e: separate hw_features from runtime changing flags 2017-08-25 14:46:15 -07:00
i40e_type.h i40e: new AQ commands 2017-04-19 17:04:06 -07:00
i40e_virtchnl_pf.c i40e: separate hw_features from runtime changing flags 2017-08-25 14:46:15 -07:00
i40e_virtchnl_pf.h virtchnl: convert to new macros 2017-06-01 14:15:21 -07:00
i40e.h i40e: separate hw_features from runtime changing flags 2017-08-25 14:46:15 -07:00
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00