diff options
Diffstat (limited to 'drivers/net/vmxnet3/vmxnet3_drv.c')
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 44fb0c5a2800..004353a46af0 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c | |||
@@ -481,7 +481,8 @@ vmxnet3_rq_alloc_rx_buf(struct vmxnet3_rx_queue *rq, u32 ring_idx, | |||
481 | } | 481 | } |
482 | rq->uncommitted[ring_idx] += num_allocated; | 482 | rq->uncommitted[ring_idx] += num_allocated; |
483 | 483 | ||
484 | dprintk(KERN_ERR "alloc_rx_buf: %d allocated, next2fill %u, next2comp " | 484 | dev_dbg(&adapter->netdev->dev, |
485 | "alloc_rx_buf: %d allocated, next2fill %u, next2comp " | ||
485 | "%u, uncommited %u\n", num_allocated, ring->next2fill, | 486 | "%u, uncommited %u\n", num_allocated, ring->next2fill, |
486 | ring->next2comp, rq->uncommitted[ring_idx]); | 487 | ring->next2comp, rq->uncommitted[ring_idx]); |
487 | 488 | ||
@@ -539,7 +540,8 @@ vmxnet3_map_pkt(struct sk_buff *skb, struct vmxnet3_tx_ctx *ctx, | |||
539 | tbi = tq->buf_info + tq->tx_ring.next2fill; | 540 | tbi = tq->buf_info + tq->tx_ring.next2fill; |
540 | tbi->map_type = VMXNET3_MAP_NONE; | 541 | tbi->map_type = VMXNET3_MAP_NONE; |
541 | 542 | ||
542 | dprintk(KERN_ERR "txd[%u]: 0x%Lx 0x%x 0x%x\n", | 543 | dev_dbg(&adapter->netdev->dev, |
544 | "txd[%u]: 0x%Lx 0x%x 0x%x\n", | ||
543 | tq->tx_ring.next2fill, ctx->sop_txd->txd.addr, | 545 | tq->tx_ring.next2fill, ctx->sop_txd->txd.addr, |
544 | ctx->sop_txd->dword[2], ctx->sop_txd->dword[3]); | 546 | ctx->sop_txd->dword[2], ctx->sop_txd->dword[3]); |
545 | vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); | 547 | vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); |
@@ -572,7 +574,8 @@ vmxnet3_map_pkt(struct sk_buff *skb, struct vmxnet3_tx_ctx *ctx, | |||
572 | gdesc->dword[2] = dw2 | buf_size; | 574 | gdesc->dword[2] = dw2 | buf_size; |
573 | gdesc->dword[3] = 0; | 575 | gdesc->dword[3] = 0; |
574 | 576 | ||
575 | dprintk(KERN_ERR "txd[%u]: 0x%Lx 0x%x 0x%x\n", | 577 | dev_dbg(&adapter->netdev->dev, |
578 | "txd[%u]: 0x%Lx 0x%x 0x%x\n", | ||
576 | tq->tx_ring.next2fill, gdesc->txd.addr, | 579 | tq->tx_ring.next2fill, gdesc->txd.addr, |
577 | gdesc->dword[2], gdesc->dword[3]); | 580 | gdesc->dword[2], gdesc->dword[3]); |
578 | vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); | 581 | vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); |
@@ -600,7 +603,8 @@ vmxnet3_map_pkt(struct sk_buff *skb, struct vmxnet3_tx_ctx *ctx, | |||
600 | gdesc->dword[2] = dw2 | frag->size; | 603 | gdesc->dword[2] = dw2 | frag->size; |
601 | gdesc->dword[3] = 0; | 604 | gdesc->dword[3] = 0; |
602 | 605 | ||
603 | dprintk(KERN_ERR "txd[%u]: 0x%llu %u %u\n", | 606 | dev_dbg(&adapter->netdev->dev, |
607 | "txd[%u]: 0x%llu %u %u\n", | ||
604 | tq->tx_ring.next2fill, gdesc->txd.addr, | 608 | tq->tx_ring.next2fill, gdesc->txd.addr, |
605 | gdesc->dword[2], gdesc->dword[3]); | 609 | gdesc->dword[2], gdesc->dword[3]); |
606 | vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); | 610 | vmxnet3_cmd_ring_adv_next2fill(&tq->tx_ring); |
@@ -697,7 +701,8 @@ vmxnet3_parse_and_copy_hdr(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, | |||
697 | tdd = tq->data_ring.base + tq->tx_ring.next2fill; | 701 | tdd = tq->data_ring.base + tq->tx_ring.next2fill; |
698 | 702 | ||
699 | memcpy(tdd->data, skb->data, ctx->copy_size); | 703 | memcpy(tdd->data, skb->data, ctx->copy_size); |
700 | dprintk(KERN_ERR "copy %u bytes to dataRing[%u]\n", | 704 | dev_dbg(&adapter->netdev->dev, |
705 | "copy %u bytes to dataRing[%u]\n", | ||
701 | ctx->copy_size, tq->tx_ring.next2fill); | 706 | ctx->copy_size, tq->tx_ring.next2fill); |
702 | return 1; | 707 | return 1; |
703 | 708 | ||
@@ -808,7 +813,8 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, | |||
808 | 813 | ||
809 | if (count > vmxnet3_cmd_ring_desc_avail(&tq->tx_ring)) { | 814 | if (count > vmxnet3_cmd_ring_desc_avail(&tq->tx_ring)) { |
810 | tq->stats.tx_ring_full++; | 815 | tq->stats.tx_ring_full++; |
811 | dprintk(KERN_ERR "tx queue stopped on %s, next2comp %u" | 816 | dev_dbg(&adapter->netdev->dev, |
817 | "tx queue stopped on %s, next2comp %u" | ||
812 | " next2fill %u\n", adapter->netdev->name, | 818 | " next2fill %u\n", adapter->netdev->name, |
813 | tq->tx_ring.next2comp, tq->tx_ring.next2fill); | 819 | tq->tx_ring.next2comp, tq->tx_ring.next2fill); |
814 | 820 | ||
@@ -853,7 +859,8 @@ vmxnet3_tq_xmit(struct sk_buff *skb, struct vmxnet3_tx_queue *tq, | |||
853 | 859 | ||
854 | /* finally flips the GEN bit of the SOP desc */ | 860 | /* finally flips the GEN bit of the SOP desc */ |
855 | gdesc->dword[2] ^= VMXNET3_TXD_GEN; | 861 | gdesc->dword[2] ^= VMXNET3_TXD_GEN; |
856 | dprintk(KERN_ERR "txd[%u]: SOP 0x%Lx 0x%x 0x%x\n", | 862 | dev_dbg(&adapter->netdev->dev, |
863 | "txd[%u]: SOP 0x%Lx 0x%x 0x%x\n", | ||
857 | (u32)((union Vmxnet3_GenericDesc *)ctx.sop_txd - | 864 | (u32)((union Vmxnet3_GenericDesc *)ctx.sop_txd - |
858 | tq->tx_ring.base), gdesc->txd.addr, gdesc->dword[2], | 865 | tq->tx_ring.base), gdesc->txd.addr, gdesc->dword[2], |
859 | gdesc->dword[3]); | 866 | gdesc->dword[3]); |
@@ -990,7 +997,8 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq, | |||
990 | if (unlikely(rcd->len == 0)) { | 997 | if (unlikely(rcd->len == 0)) { |
991 | /* Pretend the rx buffer is skipped. */ | 998 | /* Pretend the rx buffer is skipped. */ |
992 | BUG_ON(!(rcd->sop && rcd->eop)); | 999 | BUG_ON(!(rcd->sop && rcd->eop)); |
993 | dprintk(KERN_ERR "rxRing[%u][%u] 0 length\n", | 1000 | dev_dbg(&adapter->netdev->dev, |
1001 | "rxRing[%u][%u] 0 length\n", | ||
994 | ring_idx, idx); | 1002 | ring_idx, idx); |
995 | goto rcd_done; | 1003 | goto rcd_done; |
996 | } | 1004 | } |
@@ -1314,9 +1322,11 @@ vmxnet3_netpoll(struct net_device *netdev) | |||
1314 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); | 1322 | struct vmxnet3_adapter *adapter = netdev_priv(netdev); |
1315 | int irq; | 1323 | int irq; |
1316 | 1324 | ||
1325 | #ifdef CONFIG_PCI_MSI | ||
1317 | if (adapter->intr.type == VMXNET3_IT_MSIX) | 1326 | if (adapter->intr.type == VMXNET3_IT_MSIX) |
1318 | irq = adapter->intr.msix_entries[0].vector; | 1327 | irq = adapter->intr.msix_entries[0].vector; |
1319 | else | 1328 | else |
1329 | #endif | ||
1320 | irq = adapter->pdev->irq; | 1330 | irq = adapter->pdev->irq; |
1321 | 1331 | ||
1322 | disable_irq(irq); | 1332 | disable_irq(irq); |
@@ -1330,12 +1340,15 @@ vmxnet3_request_irqs(struct vmxnet3_adapter *adapter) | |||
1330 | { | 1340 | { |
1331 | int err; | 1341 | int err; |
1332 | 1342 | ||
1343 | #ifdef CONFIG_PCI_MSI | ||
1333 | if (adapter->intr.type == VMXNET3_IT_MSIX) { | 1344 | if (adapter->intr.type == VMXNET3_IT_MSIX) { |
1334 | /* we only use 1 MSI-X vector */ | 1345 | /* we only use 1 MSI-X vector */ |
1335 | err = request_irq(adapter->intr.msix_entries[0].vector, | 1346 | err = request_irq(adapter->intr.msix_entries[0].vector, |
1336 | vmxnet3_intr, 0, adapter->netdev->name, | 1347 | vmxnet3_intr, 0, adapter->netdev->name, |
1337 | adapter->netdev); | 1348 | adapter->netdev); |
1338 | } else if (adapter->intr.type == VMXNET3_IT_MSI) { | 1349 | } else |
1350 | #endif | ||
1351 | if (adapter->intr.type == VMXNET3_IT_MSI) { | ||
1339 | err = request_irq(adapter->pdev->irq, vmxnet3_intr, 0, | 1352 | err = request_irq(adapter->pdev->irq, vmxnet3_intr, 0, |
1340 | adapter->netdev->name, adapter->netdev); | 1353 | adapter->netdev->name, adapter->netdev); |
1341 | } else { | 1354 | } else { |
@@ -1376,6 +1389,7 @@ vmxnet3_free_irqs(struct vmxnet3_adapter *adapter) | |||
1376 | adapter->intr.num_intrs <= 0); | 1389 | adapter->intr.num_intrs <= 0); |
1377 | 1390 | ||
1378 | switch (adapter->intr.type) { | 1391 | switch (adapter->intr.type) { |
1392 | #ifdef CONFIG_PCI_MSI | ||
1379 | case VMXNET3_IT_MSIX: | 1393 | case VMXNET3_IT_MSIX: |
1380 | { | 1394 | { |
1381 | int i; | 1395 | int i; |
@@ -1385,6 +1399,7 @@ vmxnet3_free_irqs(struct vmxnet3_adapter *adapter) | |||
1385 | adapter->netdev); | 1399 | adapter->netdev); |
1386 | break; | 1400 | break; |
1387 | } | 1401 | } |
1402 | #endif | ||
1388 | case VMXNET3_IT_MSI: | 1403 | case VMXNET3_IT_MSI: |
1389 | free_irq(adapter->pdev->irq, adapter->netdev); | 1404 | free_irq(adapter->pdev->irq, adapter->netdev); |
1390 | break; | 1405 | break; |
@@ -1676,7 +1691,8 @@ vmxnet3_activate_dev(struct vmxnet3_adapter *adapter) | |||
1676 | int err; | 1691 | int err; |
1677 | u32 ret; | 1692 | u32 ret; |
1678 | 1693 | ||
1679 | dprintk(KERN_ERR "%s: skb_buf_size %d, rx_buf_per_pkt %d, ring sizes" | 1694 | dev_dbg(&adapter->netdev->dev, |
1695 | "%s: skb_buf_size %d, rx_buf_per_pkt %d, ring sizes" | ||
1680 | " %u %u %u\n", adapter->netdev->name, adapter->skb_buf_size, | 1696 | " %u %u %u\n", adapter->netdev->name, adapter->skb_buf_size, |
1681 | adapter->rx_buf_per_pkt, adapter->tx_queue.tx_ring.size, | 1697 | adapter->rx_buf_per_pkt, adapter->tx_queue.tx_ring.size, |
1682 | adapter->rx_queue.rx_ring[0].size, | 1698 | adapter->rx_queue.rx_ring[0].size, |
@@ -2134,6 +2150,7 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) | |||
2134 | if (adapter->intr.type == VMXNET3_IT_AUTO) { | 2150 | if (adapter->intr.type == VMXNET3_IT_AUTO) { |
2135 | int err; | 2151 | int err; |
2136 | 2152 | ||
2153 | #ifdef CONFIG_PCI_MSI | ||
2137 | adapter->intr.msix_entries[0].entry = 0; | 2154 | adapter->intr.msix_entries[0].entry = 0; |
2138 | err = pci_enable_msix(adapter->pdev, adapter->intr.msix_entries, | 2155 | err = pci_enable_msix(adapter->pdev, adapter->intr.msix_entries, |
2139 | VMXNET3_LINUX_MAX_MSIX_VECT); | 2156 | VMXNET3_LINUX_MAX_MSIX_VECT); |
@@ -2142,6 +2159,7 @@ vmxnet3_alloc_intr_resources(struct vmxnet3_adapter *adapter) | |||
2142 | adapter->intr.type = VMXNET3_IT_MSIX; | 2159 | adapter->intr.type = VMXNET3_IT_MSIX; |
2143 | return; | 2160 | return; |
2144 | } | 2161 | } |
2162 | #endif | ||
2145 | 2163 | ||
2146 | err = pci_enable_msi(adapter->pdev); | 2164 | err = pci_enable_msi(adapter->pdev); |
2147 | if (!err) { | 2165 | if (!err) { |