ixgbe: reload IPsec IP table after sa tables
authorShannon Nelson <shannon.nelson@oracle.com>
Mon, 13 Aug 2018 18:43:38 +0000 (11:43 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 28 Aug 2018 21:32:53 +0000 (14:32 -0700)
Restore the IPsec hardware IP table after reloading the SA tables.
This doesn't make much difference now, but will matter when we add
support for VF IPsec offloads.

Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c

index e515246..4340651 100644 (file)
@@ -301,14 +301,6 @@ void ixgbe_ipsec_restore(struct ixgbe_adapter *adapter)
        ixgbe_ipsec_clear_hw_tables(adapter);
        ixgbe_ipsec_start_engine(adapter);
 
-       /* reload the IP addrs */
-       for (i = 0; i < IXGBE_IPSEC_MAX_RX_IP_COUNT; i++) {
-               struct rx_ip_sa *ipsa = &ipsec->ip_tbl[i];
-
-               if (ipsa->used)
-                       ixgbe_ipsec_set_rx_ip(hw, i, ipsa->ipaddr);
-       }
-
        /* reload the Rx and Tx keys */
        for (i = 0; i < IXGBE_IPSEC_MAX_SA_COUNT; i++) {
                struct rx_sa *rsa = &ipsec->rx_tbl[i];
@@ -322,6 +314,14 @@ void ixgbe_ipsec_restore(struct ixgbe_adapter *adapter)
                if (tsa->used)
                        ixgbe_ipsec_set_tx_sa(hw, i, tsa->key, tsa->salt);
        }
+
+       /* reload the IP addrs */
+       for (i = 0; i < IXGBE_IPSEC_MAX_RX_IP_COUNT; i++) {
+               struct rx_ip_sa *ipsa = &ipsec->ip_tbl[i];
+
+               if (ipsa->used)
+                       ixgbe_ipsec_set_rx_ip(hw, i, ipsa->ipaddr);
+       }
 }
 
 /**