diff options
Diffstat (limited to 'drivers/net/vmxnet3')
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 44fb0c5a2800..6a16f76f277e 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -1314,9 +1314,11 @@ vmxnet3_netpoll(struct net_device *netdev) | |||
1314 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 1314 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
1315 | int irq; | 1315 | int irq; |
1316 | 1316 | ||
1317 | #ifdef CONFIG_PCI_MSI | ||
1317 | if (adapter->intr.type == VMXNET3_IT_MSIX) | 1318 | if (adapter->intr.type == VMXNET3_IT_MSIX) |
1318 | irq = adapter->intr.msix_entries[0].vector; | 1319 | irq = adapter->intr.msix_entries[0].vector; |
1319 | else | 1320 | else |
1321 | #endif | ||
1320 | irq = adapter->pdev->irq; | 1322 | irq = adapter->pdev->irq; |
1321 | 1323 | ||
1322 | disable_irq(irq); | 1324 | disable_irq(irq); |
@@ -1330,12 +1332,15 @@ vmxnet3_request_irqs(struct vmxnet3_adapter *adapter) | |||
1330 | { | 1332 | { |
1331 | int err; | 1333 | int err; |
1332 | 1334 | ||
1335 | #ifdef CONFIG_PCI_MSI | ||
1333 | if (adapter->intr.type == VMXNET3_IT_MSIX) { | 1336 | if (adapter->intr.type == VMXNET3_IT_MSIX) { |
1334 | /* we only use 1 MSI-X vector */ | 1337 | /* we only use 1 MSI-X vector */ |
1335 | err = request_irq(adapter->intr.msix_entries[0].vector, | 1338 | err = request_irq(adapter->intr.msix_entries[0].vector, |
1336 | vmxnet3_intr, 0, adapter->netdev->name, | 1339 | vmxnet3_intr, 0, adapter->netdev->name, |
1337 | adapter->netdev); | 1340 | adapter->netdev); |
1338 | } else if (adapter->intr.type == VMXNET3_IT_MSI) { | 1341 | } else |
1342 | #endif | ||
1343 | if (adapter->intr.type == VMXNET3_IT_MSI) { | ||
1339 | err = request_irq(adapter->pdev->irq, vmxnet3_intr, 0, | 1344 | err = request_irq(adapter->pdev->irq, vmxnet3_intr, 0, |
1340 | adapter->netdev->name, adapter->netdev); | 1345 | adapter->netdev->name, adapter->netdev); |
1341 | } else { | 1346 | } else { |
@@ -1376,6 +1381,7 @@ vmxnet3_free_irqs(struct vmxnet3_adapter *adapter) | |||
1376 | adapter->intr.num_intrs <= 0); | 1381 | adapter->intr.num_intrs <= 0); |
1377 | 1382 | ||
1378 | switch (adapter->intr.type) { | 1383 | switch (adapter->intr.type) { |
1384 | #ifdef CONFIG_PCI_MSI | ||
1379 | case VMXNET3_IT_MSIX: | 1385 | case VMXNET3_IT_MSIX: |
1380 | { | 1386 | { |
1381 | int i; | 1387 | int i; |
@@ -1385,6 +1391,7 @@ vmxnet3_free_irqs(struct vmxnet3_adapter *adapter) | |||
1385 | adapter->netdev); | 1391 | adapter->netdev); |
1386 | break; | 1392 | break; |
1387 | } | 1393 | } |
1394 | #endif | ||
1388 | case VMXNET3_IT_MSI: | 1395 | case VMXNET3_IT_MSI: |
1389 | free_irq(adapter->pdev->irq, adapter->netdev); | 1396 | free_irq(adapter->pdev->irq, adapter->netdev); |
1390 | break; | 1397 | break; |
@@ -2134,6 +2141,7 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) | |||
2134 | if (adapter->intr.type == VMXNET3_IT_AUTO) { | 2141 | if (adapter->intr.type == VMXNET3_IT_AUTO) { |
2135 | int err; | 2142 | int err; |
2136 | 2143 | ||
2144 | #ifdef CONFIG_PCI_MSI | ||
2137 | adapter->intr.msix_entries[0].entry = 0; | 2145 | adapter->intr.msix_entries[0].entry = 0; |
2138 | err = pci_enable_msix(adapter->pdev, adapter->intr.msix_entries, | 2146 | err = pci_enable_msix(adapter->pdev, adapter->intr.msix_entries, |
2139 | VMXNET3_LINUX_MAX_MSIX_VECT); | 2147 | VMXNET3_LINUX_MAX_MSIX_VECT); |
@@ -2142,6 +2150,7 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) | |||
2142 | adapter->intr.type = VMXNET3_IT_MSIX; | 2150 | adapter->intr.type = VMXNET3_IT_MSIX; |
2143 | return; | 2151 | return; |
2144 | } | 2152 | } |
2153 | #endif | ||
2145 | 2154 | ||
2146 | err = pci_enable_msi(adapter->pdev); | 2155 | err = pci_enable_msi(adapter->pdev); |
2147 | if (!err) { | 2156 | if (!err) { |