hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/net/ethernet/packetengines/yellowfin.c
....@@ -344,7 +344,7 @@
344344 static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
345345 static int yellowfin_open(struct net_device *dev);
346346 static void yellowfin_timer(struct timer_list *t);
347
-static void yellowfin_tx_timeout(struct net_device *dev);
347
+static void yellowfin_tx_timeout(struct net_device *dev, unsigned int txqueue);
348348 static int yellowfin_init_ring(struct net_device *dev);
349349 static netdev_tx_t yellowfin_start_xmit(struct sk_buff *skb,
350350 struct net_device *dev);
....@@ -434,19 +434,22 @@
434434 np->drv_flags = drv_flags;
435435 np->base = ioaddr;
436436
437
- ring_space = pci_alloc_consistent(pdev, TX_TOTAL_SIZE, &ring_dma);
437
+ ring_space = dma_alloc_coherent(&pdev->dev, TX_TOTAL_SIZE, &ring_dma,
438
+ GFP_KERNEL);
438439 if (!ring_space)
439440 goto err_out_cleardev;
440441 np->tx_ring = ring_space;
441442 np->tx_ring_dma = ring_dma;
442443
443
- ring_space = pci_alloc_consistent(pdev, RX_TOTAL_SIZE, &ring_dma);
444
+ ring_space = dma_alloc_coherent(&pdev->dev, RX_TOTAL_SIZE, &ring_dma,
445
+ GFP_KERNEL);
444446 if (!ring_space)
445447 goto err_out_unmap_tx;
446448 np->rx_ring = ring_space;
447449 np->rx_ring_dma = ring_dma;
448450
449
- ring_space = pci_alloc_consistent(pdev, STATUS_TOTAL_SIZE, &ring_dma);
451
+ ring_space = dma_alloc_coherent(&pdev->dev, STATUS_TOTAL_SIZE,
452
+ &ring_dma, GFP_KERNEL);
450453 if (!ring_space)
451454 goto err_out_unmap_rx;
452455 np->tx_status = ring_space;
....@@ -505,12 +508,14 @@
505508 return 0;
506509
507510 err_out_unmap_status:
508
- pci_free_consistent(pdev, STATUS_TOTAL_SIZE, np->tx_status,
509
- np->tx_status_dma);
511
+ dma_free_coherent(&pdev->dev, STATUS_TOTAL_SIZE, np->tx_status,
512
+ np->tx_status_dma);
510513 err_out_unmap_rx:
511
- pci_free_consistent(pdev, RX_TOTAL_SIZE, np->rx_ring, np->rx_ring_dma);
514
+ dma_free_coherent(&pdev->dev, RX_TOTAL_SIZE, np->rx_ring,
515
+ np->rx_ring_dma);
512516 err_out_unmap_tx:
513
- pci_free_consistent(pdev, TX_TOTAL_SIZE, np->tx_ring, np->tx_ring_dma);
517
+ dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
518
+ np->tx_ring_dma);
514519 err_out_cleardev:
515520 pci_iounmap(pdev, ioaddr);
516521 err_out_free_res:
....@@ -677,7 +682,7 @@
677682 add_timer(&yp->timer);
678683 }
679684
680
-static void yellowfin_tx_timeout(struct net_device *dev)
685
+static void yellowfin_tx_timeout(struct net_device *dev, unsigned int txqueue)
681686 {
682687 struct yellowfin_private *yp = netdev_priv(dev);
683688 void __iomem *ioaddr = yp->base;
....@@ -740,8 +745,10 @@
740745 if (skb == NULL)
741746 break;
742747 skb_reserve(skb, 2); /* 16 byte align the IP header. */
743
- yp->rx_ring[i].addr = cpu_to_le32(pci_map_single(yp->pci_dev,
744
- skb->data, yp->rx_buf_sz, PCI_DMA_FROMDEVICE));
748
+ yp->rx_ring[i].addr = cpu_to_le32(dma_map_single(&yp->pci_dev->dev,
749
+ skb->data,
750
+ yp->rx_buf_sz,
751
+ DMA_FROM_DEVICE));
745752 }
746753 if (i != RX_RING_SIZE) {
747754 for (j = 0; j < i; j++)
....@@ -831,8 +838,9 @@
831838 yp->tx_skbuff[entry] = skb;
832839
833840 #ifdef NO_TXSTATS
834
- yp->tx_ring[entry].addr = cpu_to_le32(pci_map_single(yp->pci_dev,
835
- skb->data, len, PCI_DMA_TODEVICE));
841
+ yp->tx_ring[entry].addr = cpu_to_le32(dma_map_single(&yp->pci_dev->dev,
842
+ skb->data,
843
+ len, DMA_TO_DEVICE));
836844 yp->tx_ring[entry].result_status = 0;
837845 if (entry >= TX_RING_SIZE-1) {
838846 /* New stop command. */
....@@ -847,8 +855,9 @@
847855 yp->cur_tx++;
848856 #else
849857 yp->tx_ring[entry<<1].request_cnt = len;
850
- yp->tx_ring[entry<<1].addr = cpu_to_le32(pci_map_single(yp->pci_dev,
851
- skb->data, len, PCI_DMA_TODEVICE));
858
+ yp->tx_ring[entry<<1].addr = cpu_to_le32(dma_map_single(&yp->pci_dev->dev,
859
+ skb->data,
860
+ len, DMA_TO_DEVICE));
852861 /* The input_last (status-write) command is constant, but we must
853862 rewrite the subsequent 'stop' command. */
854863
....@@ -923,9 +932,10 @@
923932 dev->stats.tx_packets++;
924933 dev->stats.tx_bytes += skb->len;
925934 /* Free the original skb. */
926
- pci_unmap_single(yp->pci_dev, le32_to_cpu(yp->tx_ring[entry].addr),
927
- skb->len, PCI_DMA_TODEVICE);
928
- dev_kfree_skb_irq(skb);
935
+ dma_unmap_single(&yp->pci_dev->dev,
936
+ le32_to_cpu(yp->tx_ring[entry].addr),
937
+ skb->len, DMA_TO_DEVICE);
938
+ dev_consume_skb_irq(skb);
929939 yp->tx_skbuff[entry] = NULL;
930940 }
931941 if (yp->tx_full &&
....@@ -980,10 +990,10 @@
980990 dev->stats.tx_packets++;
981991 }
982992 /* Free the original skb. */
983
- pci_unmap_single(yp->pci_dev,
984
- yp->tx_ring[entry<<1].addr, skb->len,
985
- PCI_DMA_TODEVICE);
986
- dev_kfree_skb_irq(skb);
993
+ dma_unmap_single(&yp->pci_dev->dev,
994
+ yp->tx_ring[entry << 1].addr,
995
+ skb->len, DMA_TO_DEVICE);
996
+ dev_consume_skb_irq(skb);
987997 yp->tx_skbuff[entry] = 0;
988998 /* Mark status as empty. */
989999 yp->tx_status[entry].tx_errs = 0;
....@@ -1050,13 +1060,14 @@
10501060 struct sk_buff *rx_skb = yp->rx_skbuff[entry];
10511061 s16 frame_status;
10521062 u16 desc_status;
1053
- int data_size, yf_size;
1063
+ int data_size, __maybe_unused yf_size;
10541064 u8 *buf_addr;
10551065
10561066 if(!desc->result_status)
10571067 break;
1058
- pci_dma_sync_single_for_cpu(yp->pci_dev, le32_to_cpu(desc->addr),
1059
- yp->rx_buf_sz, PCI_DMA_FROMDEVICE);
1068
+ dma_sync_single_for_cpu(&yp->pci_dev->dev,
1069
+ le32_to_cpu(desc->addr),
1070
+ yp->rx_buf_sz, DMA_FROM_DEVICE);
10601071 desc_status = le32_to_cpu(desc->result_status) >> 16;
10611072 buf_addr = rx_skb->data;
10621073 data_size = (le32_to_cpu(desc->dbdma_cmd) -
....@@ -1121,10 +1132,10 @@
11211132 without copying to a properly sized skbuff. */
11221133 if (pkt_len > rx_copybreak) {
11231134 skb_put(skb = rx_skb, pkt_len);
1124
- pci_unmap_single(yp->pci_dev,
1125
- le32_to_cpu(yp->rx_ring[entry].addr),
1126
- yp->rx_buf_sz,
1127
- PCI_DMA_FROMDEVICE);
1135
+ dma_unmap_single(&yp->pci_dev->dev,
1136
+ le32_to_cpu(yp->rx_ring[entry].addr),
1137
+ yp->rx_buf_sz,
1138
+ DMA_FROM_DEVICE);
11281139 yp->rx_skbuff[entry] = NULL;
11291140 } else {
11301141 skb = netdev_alloc_skb(dev, pkt_len + 2);
....@@ -1133,10 +1144,10 @@
11331144 skb_reserve(skb, 2); /* 16 byte align the IP header */
11341145 skb_copy_to_linear_data(skb, rx_skb->data, pkt_len);
11351146 skb_put(skb, pkt_len);
1136
- pci_dma_sync_single_for_device(yp->pci_dev,
1137
- le32_to_cpu(desc->addr),
1138
- yp->rx_buf_sz,
1139
- PCI_DMA_FROMDEVICE);
1147
+ dma_sync_single_for_device(&yp->pci_dev->dev,
1148
+ le32_to_cpu(desc->addr),
1149
+ yp->rx_buf_sz,
1150
+ DMA_FROM_DEVICE);
11401151 }
11411152 skb->protocol = eth_type_trans(skb, dev);
11421153 netif_rx(skb);
....@@ -1155,8 +1166,10 @@
11551166 break; /* Better luck next round. */
11561167 yp->rx_skbuff[entry] = skb;
11571168 skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */
1158
- yp->rx_ring[entry].addr = cpu_to_le32(pci_map_single(yp->pci_dev,
1159
- skb->data, yp->rx_buf_sz, PCI_DMA_FROMDEVICE));
1169
+ yp->rx_ring[entry].addr = cpu_to_le32(dma_map_single(&yp->pci_dev->dev,
1170
+ skb->data,
1171
+ yp->rx_buf_sz,
1172
+ DMA_FROM_DEVICE));
11601173 }
11611174 yp->rx_ring[entry].dbdma_cmd = cpu_to_le32(CMD_STOP);
11621175 yp->rx_ring[entry].result_status = 0; /* Clear complete bit. */
....@@ -1258,8 +1271,7 @@
12581271 yp->rx_skbuff[i] = NULL;
12591272 }
12601273 for (i = 0; i < TX_RING_SIZE; i++) {
1261
- if (yp->tx_skbuff[i])
1262
- dev_kfree_skb(yp->tx_skbuff[i]);
1274
+ dev_kfree_skb(yp->tx_skbuff[i]);
12631275 yp->tx_skbuff[i] = NULL;
12641276 }
12651277
....@@ -1344,7 +1356,7 @@
13441356 switch(cmd) {
13451357 case SIOCGMIIPHY: /* Get address of MII PHY in use. */
13461358 data->phy_id = np->phys[0] & 0x1f;
1347
- /* Fall Through */
1359
+ fallthrough;
13481360
13491361 case SIOCGMIIREG: /* Read MII PHY register. */
13501362 data->val_out = mdio_read(ioaddr, data->phy_id & 0x1f, data->reg_num & 0x1f);
....@@ -1380,10 +1392,12 @@
13801392 BUG_ON(!dev);
13811393 np = netdev_priv(dev);
13821394
1383
- pci_free_consistent(pdev, STATUS_TOTAL_SIZE, np->tx_status,
1384
- np->tx_status_dma);
1385
- pci_free_consistent(pdev, RX_TOTAL_SIZE, np->rx_ring, np->rx_ring_dma);
1386
- pci_free_consistent(pdev, TX_TOTAL_SIZE, np->tx_ring, np->tx_ring_dma);
1395
+ dma_free_coherent(&pdev->dev, STATUS_TOTAL_SIZE, np->tx_status,
1396
+ np->tx_status_dma);
1397
+ dma_free_coherent(&pdev->dev, RX_TOTAL_SIZE, np->rx_ring,
1398
+ np->rx_ring_dma);
1399
+ dma_free_coherent(&pdev->dev, TX_TOTAL_SIZE, np->tx_ring,
1400
+ np->tx_ring_dma);
13871401 unregister_netdev (dev);
13881402
13891403 pci_iounmap(pdev, np->base);