diff options
Diffstat (limited to 'drivers/net/ethernet/intel')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000e/netdev.c | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/iavf/iavf_main.c | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 15 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc.h | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_main.c | 3 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/ixgbevf/ipsec.c | 20 | 
8 files changed, 34 insertions, 10 deletions
| diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index d150dade06cf..757a54c39eef 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -7664,6 +7664,7 @@ err_flashmap:  err_ioremap:  	free_netdev(netdev);  err_alloc_etherdev: +	pci_disable_pcie_error_reporting(pdev);  	pci_release_mem_regions(pdev);  err_pci_reg:  err_dma: diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c index dbcae92bb18d..adfa2768f024 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c @@ -2227,6 +2227,7 @@ err_sw_init:  err_ioremap:  	free_netdev(netdev);  err_alloc_netdev: +	pci_disable_pcie_error_reporting(pdev);  	pci_release_mem_regions(pdev);  err_pci_reg:  err_dma: diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index e612c24fa384..44bafedd09f2 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -3798,6 +3798,7 @@ static int iavf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  err_ioremap:  	free_netdev(netdev);  err_alloc_etherdev: +	pci_disable_pcie_error_reporting(pdev);  	pci_release_regions(pdev);  err_pci_reg:  err_dma: diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 7e6435dc7e80..171a7a629b20 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -931,6 +931,7 @@ static void igb_configure_msix(struct igb_adapter *adapter)   **/  static int igb_request_msix(struct igb_adapter *adapter)  { +	unsigned int num_q_vectors = adapter->num_q_vectors;  	struct net_device *netdev = adapter->netdev;  	int i, err = 0, vector = 0, free_vector = 0; @@ -939,7 +940,13 @@ static int igb_request_msix(struct igb_adapter *adapter)  	if (err)  		goto err_out; -	for (i = 0; i < adapter->num_q_vectors; i++) { +	if (num_q_vectors > MAX_Q_VECTORS) { +		num_q_vectors = MAX_Q_VECTORS; +		dev_warn(&adapter->pdev->dev, +			 "The number of queue vectors (%d) is higher than max allowed (%d)\n", +			 adapter->num_q_vectors, MAX_Q_VECTORS); +	} +	for (i = 0; i < num_q_vectors; i++) {  		struct igb_q_vector *q_vector = adapter->q_vector[i];  		vector++; @@ -1678,14 +1685,15 @@ static bool is_any_txtime_enabled(struct igb_adapter *adapter)   **/  static void igb_config_tx_modes(struct igb_adapter *adapter, int queue)  { -	struct igb_ring *ring = adapter->tx_ring[queue];  	struct net_device *netdev = adapter->netdev;  	struct e1000_hw *hw = &adapter->hw; +	struct igb_ring *ring;  	u32 tqavcc, tqavctrl;  	u16 value;  	WARN_ON(hw->mac.type != e1000_i210);  	WARN_ON(queue < 0 || queue > 1); +	ring = adapter->tx_ring[queue];  	/* If any of the Qav features is enabled, configure queues as SR and  	 * with HIGH PRIO. If none is, then configure them with LOW PRIO and @@ -3615,6 +3623,7 @@ err_sw_init:  err_ioremap:  	free_netdev(netdev);  err_alloc_etherdev: +	pci_disable_pcie_error_reporting(pdev);  	pci_release_mem_regions(pdev);  err_pci_reg:  err_dma: @@ -4835,6 +4844,8 @@ static void igb_clean_tx_ring(struct igb_ring *tx_ring)  					       DMA_TO_DEVICE);  		} +		tx_buffer->next_to_watch = NULL; +  		/* move us one more past the eop_desc for start of next pkt */  		tx_buffer++;  		i++; diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h index 9e0bbb2e55e3..5901ed9fb545 100644 --- a/drivers/net/ethernet/intel/igc/igc.h +++ b/drivers/net/ethernet/intel/igc/igc.h @@ -578,7 +578,7 @@ static inline s32 igc_read_phy_reg(struct igc_hw *hw, u32 offset, u16 *data)  	if (hw->phy.ops.read_reg)  		return hw->phy.ops.read_reg(hw, offset, data); -	return 0; +	return -EOPNOTSUPP;  }  void igc_reinit_locked(struct igc_adapter *); diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c index 95323095094d..e29aadbc6744 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -232,6 +232,8 @@ static void igc_clean_tx_ring(struct igc_ring *tx_ring)  				igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);  		} +		tx_buffer->next_to_watch = NULL; +  		/* move us one more past the eop_desc for start of next pkt */  		tx_buffer++;  		i++; @@ -6054,6 +6056,7 @@ err_sw_init:  err_ioremap:  	free_netdev(netdev);  err_alloc_etherdev: +	pci_disable_pcie_error_reporting(pdev);  	pci_release_mem_regions(pdev);  err_pci_reg:  err_dma: diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index ffff69efd78a..913253f8ecb4 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -11067,6 +11067,7 @@ err_ioremap:  	disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter->state);  	free_netdev(netdev);  err_alloc_etherdev: +	pci_disable_pcie_error_reporting(pdev);  	pci_release_mem_regions(pdev);  err_pci_reg:  err_dma: diff --git a/drivers/net/ethernet/intel/ixgbevf/ipsec.c b/drivers/net/ethernet/intel/ixgbevf/ipsec.c index caaea2c920a6..e3e4676af9e4 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ipsec.c +++ b/drivers/net/ethernet/intel/ixgbevf/ipsec.c @@ -211,7 +211,7 @@ struct xfrm_state *ixgbevf_ipsec_find_rx_state(struct ixgbevf_ipsec *ipsec,  static int ixgbevf_ipsec_parse_proto_keys(struct xfrm_state *xs,  					  u32 *mykey, u32 *mysalt)  { -	struct net_device *dev = xs->xso.dev; +	struct net_device *dev = xs->xso.real_dev;  	unsigned char *key_data;  	char *alg_name = NULL;  	int key_len; @@ -260,12 +260,15 @@ static int ixgbevf_ipsec_parse_proto_keys(struct xfrm_state *xs,   **/  static int ixgbevf_ipsec_add_sa(struct xfrm_state *xs)  { -	struct net_device *dev = xs->xso.dev; -	struct ixgbevf_adapter *adapter = netdev_priv(dev); -	struct ixgbevf_ipsec *ipsec = adapter->ipsec; +	struct net_device *dev = xs->xso.real_dev; +	struct ixgbevf_adapter *adapter; +	struct ixgbevf_ipsec *ipsec;  	u16 sa_idx;  	int ret; +	adapter = netdev_priv(dev); +	ipsec = adapter->ipsec; +  	if (xs->id.proto != IPPROTO_ESP && xs->id.proto != IPPROTO_AH) {  		netdev_err(dev, "Unsupported protocol 0x%04x for IPsec offload\n",  			   xs->id.proto); @@ -383,11 +386,14 @@ static int ixgbevf_ipsec_add_sa(struct xfrm_state *xs)   **/  static void ixgbevf_ipsec_del_sa(struct xfrm_state *xs)  { -	struct net_device *dev = xs->xso.dev; -	struct ixgbevf_adapter *adapter = netdev_priv(dev); -	struct ixgbevf_ipsec *ipsec = adapter->ipsec; +	struct net_device *dev = xs->xso.real_dev; +	struct ixgbevf_adapter *adapter; +	struct ixgbevf_ipsec *ipsec;  	u16 sa_idx; +	adapter = netdev_priv(dev); +	ipsec = adapter->ipsec; +  	if (xs->xso.flags & XFRM_OFFLOAD_INBOUND) {  		sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_RX_INDEX; |