|
@@ -698,7 +698,7 @@ static void ixgbe_set_num_queues(struct ixgbe_adapter *adapter)
|
|
static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
|
|
static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
|
|
int vectors)
|
|
int vectors)
|
|
{
|
|
{
|
|
- int err, vector_threshold;
|
|
|
|
|
|
+ int vector_threshold;
|
|
|
|
|
|
/* We'll want at least 2 (vector_threshold):
|
|
/* We'll want at least 2 (vector_threshold):
|
|
* 1) TxQ[0] + RxQ[0] handler
|
|
* 1) TxQ[0] + RxQ[0] handler
|
|
@@ -712,18 +712,10 @@ static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
|
|
* Right now, we simply care about how many we'll get; we'll
|
|
* Right now, we simply care about how many we'll get; we'll
|
|
* set them up later while requesting irq's.
|
|
* set them up later while requesting irq's.
|
|
*/
|
|
*/
|
|
- while (vectors >= vector_threshold) {
|
|
|
|
- err = pci_enable_msix(adapter->pdev, adapter->msix_entries,
|
|
|
|
- vectors);
|
|
|
|
- if (!err) /* Success in acquiring all requested vectors. */
|
|
|
|
- break;
|
|
|
|
- else if (err < 0)
|
|
|
|
- vectors = 0; /* Nasty failure, quit now */
|
|
|
|
- else /* err == number of vectors we should try again with */
|
|
|
|
- vectors = err;
|
|
|
|
- }
|
|
|
|
|
|
+ vectors = pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
|
|
|
|
+ vector_threshold, vectors);
|
|
|
|
|
|
- if (vectors < vector_threshold) {
|
|
|
|
|
|
+ if (vectors < 0) {
|
|
/* Can't allocate enough MSI-X interrupts? Oh well.
|
|
/* Can't allocate enough MSI-X interrupts? Oh well.
|
|
* This just means we'll go with either a single MSI
|
|
* This just means we'll go with either a single MSI
|
|
* vector or fall back to legacy interrupts.
|
|
* vector or fall back to legacy interrupts.
|