[Intel-wired-lan] [net-queue PATCH v2 2/2] ixgbe: Move ipsec init function to before reset call
Shannon Nelson
shannon.nelson at oracle.com
Mon Jun 4 21:21:11 UTC 2018
On 6/4/2018 1:51 PM, Alexander Duyck wrote:
> This patch moves the ipsec init function in ixgbe_sw_init. This way it is a
> bit more consistent with the placement of similar initialization functions
> and is placed before the reset_hw call which should allow us to clean up
> any link issues that may be introduced by the fact that we force the link
> up if somehow the device had ipsec still enabled before the driver was
> loaded.
>
> In addition to the function move it is necessary to change the assignment
> of netdev->features. The easiest way to do this is to just test for the
> existance of adapter->ipsec and if it is present we set the feature bits.
>
> Fixes: 49a94d74d948 ("ixgbe: add ipsec engine start and stop routines")
> Reported-by: Andre Tomt <andre at tomt.net>
> Signed-off-by: Alexander Duyck <alexander.h.duyck at intel.com>
Acked-by: Shannon Nelson <shannon.nelson at oracle.com>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 7 -------
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 11 +++++++++--
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
> index 344a1f2..38d8cf7 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c
> @@ -1001,13 +1001,6 @@ void ixgbe_init_ipsec_offload(struct ixgbe_adapter *adapter)
>
> adapter->netdev->xfrmdev_ops = &ixgbe_xfrmdev_ops;
>
> -#define IXGBE_ESP_FEATURES (NETIF_F_HW_ESP | \
> - NETIF_F_HW_ESP_TX_CSUM | \
> - NETIF_F_GSO_ESP)
> -
> - adapter->netdev->features |= IXGBE_ESP_FEATURES;
> - adapter->netdev->hw_enc_features |= IXGBE_ESP_FEATURES;
> -
> return;
>
> err2:
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 8cab0c5..e1d46e4 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -6128,6 +6128,7 @@ static int ixgbe_sw_init(struct ixgbe_adapter *adapter,
> #ifdef CONFIG_IXGBE_DCB
> ixgbe_init_dcb(adapter);
> #endif
> + ixgbe_init_ipsec_offload(adapter);
>
> /* default flow control settings */
> hw->fc.requested_mode = ixgbe_fc_full;
> @@ -10488,6 +10489,14 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (hw->mac.type >= ixgbe_mac_82599EB)
> netdev->features |= NETIF_F_SCTP_CRC | NETIF_F_GSO_UDP_L4;
>
> +#ifdef CONFIG_XFRM_OFFLOAD
> +#define IXGBE_ESP_FEATURES (NETIF_F_HW_ESP | \
> + NETIF_F_HW_ESP_TX_CSUM | \
> + NETIF_F_GSO_ESP)
> +
> + if (adapter->ipsec)
> + netdev->features |= IXGBE_ESP_FEATURES;
> +#endif
> /* copy netdev features into list of user selectable features */
> netdev->hw_features |= netdev->features |
> NETIF_F_HW_VLAN_CTAG_FILTER |
> @@ -10550,8 +10559,6 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> NETIF_F_FCOE_MTU;
> }
> #endif /* IXGBE_FCOE */
> - ixgbe_init_ipsec_offload(adapter);
> -
> if (adapter->flags2 & IXGBE_FLAG2_RSC_CAPABLE)
> netdev->hw_features |= NETIF_F_LRO;
> if (adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED)
>
More information about the Intel-wired-lan
mailing list