diff options
Diffstat (limited to 'drivers/net/ethernet/intel/igbvf/netdev.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igbvf/netdev.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index 3a32809510fc..72cb1b56e9f2 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c @@ -1074,7 +1074,7 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)  			  igbvf_intr_msix_rx, 0, adapter->rx_ring->name,  			  netdev);  	if (err) -		goto out; +		goto free_irq_tx;  	adapter->rx_ring->itr_register = E1000_EITR(vector);  	adapter->rx_ring->itr_val = adapter->current_itr; @@ -1083,10 +1083,14 @@ static int igbvf_request_msix(struct igbvf_adapter *adapter)  	err = request_irq(adapter->msix_entries[vector].vector,  			  igbvf_msix_other, 0, netdev->name, netdev);  	if (err) -		goto out; +		goto free_irq_rx;  	igbvf_configure_msix(adapter);  	return 0; +free_irq_rx: +	free_irq(adapter->msix_entries[--vector].vector, netdev); +free_irq_tx: +	free_irq(adapter->msix_entries[--vector].vector, netdev);  out:  	return err;  } |