forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/drivers/net/ethernet/sun/sunhme.c
....@@ -52,7 +52,6 @@
5252 #endif
5353 #include <linux/uaccess.h>
5454
55
-#include <asm/pgtable.h>
5655 #include <asm/irq.h>
5756
5857 #ifdef CONFIG_PCI
....@@ -1962,7 +1961,7 @@
19621961 this = &txbase[elem];
19631962 }
19641963
1965
- dev_kfree_skb_irq(skb);
1964
+ dev_consume_skb_irq(skb);
19661965 dev->stats.tx_packets++;
19671966 }
19681967 hp->tx_old = elem;
....@@ -2064,9 +2063,9 @@
20642063
20652064 skb_reserve(copy_skb, 2);
20662065 skb_put(copy_skb, len);
2067
- dma_sync_single_for_cpu(hp->dma_dev, dma_addr, len, DMA_FROM_DEVICE);
2066
+ dma_sync_single_for_cpu(hp->dma_dev, dma_addr, len + 2, DMA_FROM_DEVICE);
20682067 skb_copy_from_linear_data(skb, copy_skb->data, len);
2069
- dma_sync_single_for_device(hp->dma_dev, dma_addr, len, DMA_FROM_DEVICE);
2068
+ dma_sync_single_for_device(hp->dma_dev, dma_addr, len + 2, DMA_FROM_DEVICE);
20702069 /* Reuse original ring buffer. */
20712070 hme_write_rxd(hp, this,
20722071 (RXFLAG_OWN|((RX_BUF_ALLOC_SIZE-RX_OFFSET)<<16)),
....@@ -2246,7 +2245,7 @@
22462245 #define SXD(x)
22472246 #endif
22482247
2249
-static void happy_meal_tx_timeout(struct net_device *dev)
2248
+static void happy_meal_tx_timeout(struct net_device *dev, unsigned int txqueue)
22502249 {
22512250 struct happy_meal *hp = netdev_priv(dev);
22522251
....@@ -2691,7 +2690,7 @@
26912690 sbus_dp = op->dev.parent->of_node;
26922691
26932692 /* We can match PCI devices too, do not accept those here. */
2694
- if (strcmp(sbus_dp->name, "sbus") && strcmp(sbus_dp->name, "sbi"))
2693
+ if (!of_node_name_eq(sbus_dp, "sbus") && !of_node_name_eq(sbus_dp, "sbi"))
26952694 return err;
26962695
26972696 if (is_qfe) {
....@@ -2999,7 +2998,7 @@
29992998 /* Now make sure pci_dev cookie is there. */
30002999 #ifdef CONFIG_SPARC
30013000 dp = pci_device_to_OF_node(pdev);
3002
- strcpy(prom_name, dp->name);
3001
+ snprintf(prom_name, sizeof(prom_name), "%pOFn", dp);
30033002 #else
30043003 if (is_quattro_p(pdev))
30053004 strcpy(prom_name, "SUNW,qfe");
....@@ -3164,7 +3163,7 @@
31643163 if (err) {
31653164 printk(KERN_ERR "happymeal(PCI): Cannot register net device, "
31663165 "aborting.\n");
3167
- goto err_out_iounmap;
3166
+ goto err_out_free_coherent;
31683167 }
31693168
31703169 pci_set_drvdata(pdev, hp);
....@@ -3197,6 +3196,10 @@
31973196
31983197 return 0;
31993198
3199
+err_out_free_coherent:
3200
+ dma_free_coherent(hp->dma_dev, PAGE_SIZE,
3201
+ hp->happy_block, hp->hblock_dvma);
3202
+
32003203 err_out_iounmap:
32013204 iounmap(hp->gregs);
32023205