hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/drivers/net/ethernet/neterion/vxge/vxge-main.c
....@@ -98,7 +98,7 @@
9898 {
9999 struct sk_buff **skb_ptr = NULL;
100100 struct sk_buff **temp;
101
-#define NR_SKB_COMPLETED 128
101
+#define NR_SKB_COMPLETED 16
102102 struct sk_buff *completed[NR_SKB_COMPLETED];
103103 int more;
104104
....@@ -114,7 +114,7 @@
114114
115115 /* free SKBs */
116116 for (temp = completed; temp != skb_ptr; temp++)
117
- dev_kfree_skb_irq(*temp);
117
+ dev_consume_skb_irq(*temp);
118118 } while (more);
119119 }
120120
....@@ -241,10 +241,10 @@
241241 rx_priv = vxge_hw_ring_rxd_private_get(dtrh);
242242
243243 rx_priv->skb_data = rx_priv->skb->data;
244
- dma_addr = pci_map_single(ring->pdev, rx_priv->skb_data,
245
- rx_priv->data_size, PCI_DMA_FROMDEVICE);
244
+ dma_addr = dma_map_single(&ring->pdev->dev, rx_priv->skb_data,
245
+ rx_priv->data_size, DMA_FROM_DEVICE);
246246
247
- if (unlikely(pci_dma_mapping_error(ring->pdev, dma_addr))) {
247
+ if (unlikely(dma_mapping_error(&ring->pdev->dev, dma_addr))) {
248248 ring->stats.pci_map_fail++;
249249 return -EIO;
250250 }
....@@ -323,8 +323,8 @@
323323 static inline void vxge_re_pre_post(void *dtr, struct vxge_ring *ring,
324324 struct vxge_rx_priv *rx_priv)
325325 {
326
- pci_dma_sync_single_for_device(ring->pdev,
327
- rx_priv->data_dma, rx_priv->data_size, PCI_DMA_FROMDEVICE);
326
+ dma_sync_single_for_device(&ring->pdev->dev, rx_priv->data_dma,
327
+ rx_priv->data_size, DMA_FROM_DEVICE);
328328
329329 vxge_hw_ring_rxd_1b_set(dtr, rx_priv->data_dma, rx_priv->data_size);
330330 vxge_hw_ring_rxd_pre_post(ring->handle, dtr);
....@@ -425,8 +425,9 @@
425425 if (!vxge_rx_map(dtr, ring)) {
426426 skb_put(skb, pkt_length);
427427
428
- pci_unmap_single(ring->pdev, data_dma,
429
- data_size, PCI_DMA_FROMDEVICE);
428
+ dma_unmap_single(&ring->pdev->dev,
429
+ data_dma, data_size,
430
+ DMA_FROM_DEVICE);
430431
431432 vxge_hw_ring_rxd_pre_post(ringh, dtr);
432433 vxge_post(&dtr_cnt, &first_dtr, dtr,
....@@ -458,9 +459,9 @@
458459 skb_reserve(skb_up,
459460 VXGE_HW_HEADER_ETHERNET_II_802_3_ALIGN);
460461
461
- pci_dma_sync_single_for_cpu(ring->pdev,
462
- data_dma, data_size,
463
- PCI_DMA_FROMDEVICE);
462
+ dma_sync_single_for_cpu(&ring->pdev->dev,
463
+ data_dma, data_size,
464
+ DMA_FROM_DEVICE);
464465
465466 vxge_debug_mem(VXGE_TRACE,
466467 "%s: %s:%d skb_up = %p",
....@@ -585,13 +586,13 @@
585586 }
586587
587588 /* for unfragmented skb */
588
- pci_unmap_single(fifo->pdev, txd_priv->dma_buffers[i++],
589
- skb_headlen(skb), PCI_DMA_TODEVICE);
589
+ dma_unmap_single(&fifo->pdev->dev, txd_priv->dma_buffers[i++],
590
+ skb_headlen(skb), DMA_TO_DEVICE);
590591
591592 for (j = 0; j < frg_cnt; j++) {
592
- pci_unmap_page(fifo->pdev,
593
- txd_priv->dma_buffers[i++],
594
- skb_frag_size(frag), PCI_DMA_TODEVICE);
593
+ dma_unmap_page(&fifo->pdev->dev,
594
+ txd_priv->dma_buffers[i++],
595
+ skb_frag_size(frag), DMA_TO_DEVICE);
595596 frag += 1;
596597 }
597598
....@@ -897,10 +898,10 @@
897898
898899 first_frg_len = skb_headlen(skb);
899900
900
- dma_pointer = pci_map_single(fifo->pdev, skb->data, first_frg_len,
901
- PCI_DMA_TODEVICE);
901
+ dma_pointer = dma_map_single(&fifo->pdev->dev, skb->data,
902
+ first_frg_len, DMA_TO_DEVICE);
902903
903
- if (unlikely(pci_dma_mapping_error(fifo->pdev, dma_pointer))) {
904
+ if (unlikely(dma_mapping_error(&fifo->pdev->dev, dma_pointer))) {
904905 vxge_hw_fifo_txdl_free(fifo_hw, dtr);
905906 fifo->stats.pci_map_fail++;
906907 goto _exit0;
....@@ -977,12 +978,12 @@
977978 j = 0;
978979 frag = &skb_shinfo(skb)->frags[0];
979980
980
- pci_unmap_single(fifo->pdev, txdl_priv->dma_buffers[j++],
981
- skb_headlen(skb), PCI_DMA_TODEVICE);
981
+ dma_unmap_single(&fifo->pdev->dev, txdl_priv->dma_buffers[j++],
982
+ skb_headlen(skb), DMA_TO_DEVICE);
982983
983984 for (; j < i; j++) {
984
- pci_unmap_page(fifo->pdev, txdl_priv->dma_buffers[j],
985
- skb_frag_size(frag), PCI_DMA_TODEVICE);
985
+ dma_unmap_page(&fifo->pdev->dev, txdl_priv->dma_buffers[j],
986
+ skb_frag_size(frag), DMA_TO_DEVICE);
986987 frag += 1;
987988 }
988989
....@@ -1012,8 +1013,8 @@
10121013 if (state != VXGE_HW_RXD_STATE_POSTED)
10131014 return;
10141015
1015
- pci_unmap_single(ring->pdev, rx_priv->data_dma,
1016
- rx_priv->data_size, PCI_DMA_FROMDEVICE);
1016
+ dma_unmap_single(&ring->pdev->dev, rx_priv->data_dma,
1017
+ rx_priv->data_size, DMA_FROM_DEVICE);
10171018
10181019 dev_kfree_skb(rx_priv->skb);
10191020 rx_priv->skb_data = NULL;
....@@ -1048,12 +1049,12 @@
10481049 frag = &skb_shinfo(skb)->frags[0];
10491050
10501051 /* for unfragmented skb */
1051
- pci_unmap_single(fifo->pdev, txd_priv->dma_buffers[i++],
1052
- skb_headlen(skb), PCI_DMA_TODEVICE);
1052
+ dma_unmap_single(&fifo->pdev->dev, txd_priv->dma_buffers[i++],
1053
+ skb_headlen(skb), DMA_TO_DEVICE);
10531054
10541055 for (j = 0; j < frg_cnt; j++) {
1055
- pci_unmap_page(fifo->pdev, txd_priv->dma_buffers[i++],
1056
- skb_frag_size(frag), PCI_DMA_TODEVICE);
1056
+ dma_unmap_page(&fifo->pdev->dev, txd_priv->dma_buffers[i++],
1057
+ skb_frag_size(frag), DMA_TO_DEVICE);
10571058 frag += 1;
10581059 }
10591060
....@@ -1075,7 +1076,7 @@
10751076 list_for_each_safe(entry, next, &vpath->mac_addr_list) {
10761077 if (((struct vxge_mac_addrs *)entry)->macaddr == del_mac) {
10771078 list_del(entry);
1078
- kfree((struct vxge_mac_addrs *)entry);
1079
+ kfree(entry);
10791080 vpath->mac_addr_cnt--;
10801081
10811082 if (is_multicast_ether_addr(mac->macaddr))
....@@ -1274,6 +1275,7 @@
12741275 /**
12751276 * vxge_set_mac_addr
12761277 * @dev: pointer to the device structure
1278
+ * @p: socket info
12771279 *
12781280 * Update entry "0" (default MAC addr)
12791281 */
....@@ -1798,7 +1800,7 @@
17981800
17991801 /**
18001802 * vxge_poll - Receive handler when Receive Polling is used.
1801
- * @dev: pointer to the device structure.
1803
+ * @napi: pointer to the napi structure.
18021804 * @budget: Number of packets budgeted to be processed in this iteration.
18031805 *
18041806 * This function comes into picture only if Receive side is being handled
....@@ -1826,7 +1828,6 @@
18261828 vxge_hw_channel_msix_unmask(
18271829 (struct __vxge_hw_channel *)ring->handle,
18281830 ring->rx_vector_no);
1829
- mmiowb();
18301831 }
18311832
18321833 /* We are copying and returning the local variable, in case if after
....@@ -2234,8 +2235,6 @@
22342235 vxge_hw_channel_msix_unmask((struct __vxge_hw_channel *)fifo->handle,
22352236 fifo->tx_vector_no);
22362237
2237
- mmiowb();
2238
-
22392238 return IRQ_HANDLED;
22402239 }
22412240
....@@ -2272,14 +2271,12 @@
22722271 */
22732272 vxge_hw_vpath_msix_mask(vdev->vpaths[i].handle, msix_id);
22742273 vxge_hw_vpath_msix_clear(vdev->vpaths[i].handle, msix_id);
2275
- mmiowb();
22762274
22772275 status = vxge_hw_vpath_alarm_process(vdev->vpaths[i].handle,
22782276 vdev->exec_mode);
22792277 if (status == VXGE_HW_OK) {
22802278 vxge_hw_vpath_msix_unmask(vdev->vpaths[i].handle,
22812279 msix_id);
2282
- mmiowb();
22832280 continue;
22842281 }
22852282 vxge_debug_intr(VXGE_ERR,
....@@ -2553,7 +2550,7 @@
25532550 vxge_debug_init(VXGE_ERR,
25542551 "%s: Defaulting to INTA",
25552552 vdev->ndev->name);
2556
- goto INTA_MODE;
2553
+ goto INTA_MODE;
25572554 }
25582555
25592556 msix_idx = (vdev->vpaths[0].handle->vpath->vp_id *
....@@ -2917,7 +2914,7 @@
29172914
29182915 list_for_each_safe(entry, next, &vpath->mac_addr_list) {
29192916 list_del(entry);
2920
- kfree((struct vxge_mac_addrs *)entry);
2917
+ kfree(entry);
29212918 }
29222919 }
29232920
....@@ -3100,7 +3097,7 @@
31003097 /**
31013098 * vxge_get_stats64
31023099 * @dev: pointer to the device structure
3103
- * @stats: pointer to struct rtnl_link_stats64
3100
+ * @net_stats: pointer to struct rtnl_link_stats64
31043101 *
31053102 */
31063103 static void
....@@ -3249,7 +3246,7 @@
32493246 /**
32503247 * vxge_ioctl
32513248 * @dev: Device pointer.
3252
- * @ifr: An IOCTL specific structure, that can contain a pointer to
3249
+ * @rq: An IOCTL specific structure, that can contain a pointer to
32533250 * a proprietary structure used to pass information to the driver.
32543251 * @cmd: This is used to distinguish between the different commands that
32553252 * can be passed to the IOCTL functions.
....@@ -3273,12 +3270,13 @@
32733270 /**
32743271 * vxge_tx_watchdog
32753272 * @dev: pointer to net device structure
3273
+ * @txqueue: index of the hanging queue
32763274 *
32773275 * Watchdog for transmit side.
32783276 * This function is triggered if the Tx Queue is stopped
32793277 * for a pre-defined amount of time when the Interface is still up.
32803278 */
3281
-static void vxge_tx_watchdog(struct net_device *dev)
3279
+static void vxge_tx_watchdog(struct net_device *dev, unsigned int txqueue)
32823280 {
32833281 struct vxgedev *vdev;
32843282
....@@ -4004,25 +4002,24 @@
40044002 }
40054003 }
40064004
4007
-#ifdef CONFIG_PM
40084005 /**
40094006 * vxge_pm_suspend - vxge power management suspend entry point
4007
+ * @dev_d: device pointer
40104008 *
40114009 */
4012
-static int vxge_pm_suspend(struct pci_dev *pdev, pm_message_t state)
4010
+static int __maybe_unused vxge_pm_suspend(struct device *dev_d)
40134011 {
40144012 return -ENOSYS;
40154013 }
40164014 /**
40174015 * vxge_pm_resume - vxge power management resume entry point
4016
+ * @dev_d: device pointer
40184017 *
40194018 */
4020
-static int vxge_pm_resume(struct pci_dev *pdev)
4019
+static int __maybe_unused vxge_pm_resume(struct device *dev_d)
40214020 {
40224021 return -ENOSYS;
40234022 }
4024
-
4025
-#endif
40264023
40274024 /**
40284025 * vxge_io_error_detected - called when PCI error is detected
....@@ -4395,21 +4392,20 @@
43954392 goto _exit0;
43964393 }
43974394
4398
- if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
4395
+ if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) {
43994396 vxge_debug_ll_config(VXGE_TRACE,
44004397 "%s : using 64bit DMA", __func__);
44014398
44024399 high_dma = 1;
44034400
4404
- if (pci_set_consistent_dma_mask(pdev,
4405
- DMA_BIT_MASK(64))) {
4401
+ if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
44064402 vxge_debug_init(VXGE_ERR,
44074403 "%s : unable to obtain 64bit DMA for "
44084404 "consistent allocations", __func__);
44094405 ret = -ENOMEM;
44104406 goto _exit1;
44114407 }
4412
- } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
4408
+ } else if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) {
44134409 vxge_debug_ll_config(VXGE_TRACE,
44144410 "%s : using 32bit DMA", __func__);
44154411 } else {
....@@ -4547,7 +4543,7 @@
45474543 * due to the fact that HWTS is using the FCS as the location of the
45484544 * timestamp. The HW FCS checking will still correctly determine if
45494545 * there is a valid checksum, and the FCS is being removed by the driver
4550
- * anyway. So no fucntionality is being lost. Since it is always
4546
+ * anyway. So no functionality is being lost. Since it is always
45514547 * enabled, we now simply use the ioctl call to set whether or not the
45524548 * driver should be paying attention to the HWTS.
45534549 */
....@@ -4801,15 +4797,14 @@
48014797 .resume = vxge_io_resume,
48024798 };
48034799
4800
+static SIMPLE_DEV_PM_OPS(vxge_pm_ops, vxge_pm_suspend, vxge_pm_resume);
4801
+
48044802 static struct pci_driver vxge_driver = {
48054803 .name = VXGE_DRIVER_NAME,
48064804 .id_table = vxge_id_table,
48074805 .probe = vxge_probe,
48084806 .remove = vxge_remove,
4809
-#ifdef CONFIG_PM
4810
- .suspend = vxge_pm_suspend,
4811
- .resume = vxge_pm_resume,
4812
-#endif
4807
+ .driver.pm = &vxge_pm_ops,
48134808 .err_handler = &vxge_err_handler,
48144809 };
48154810