diff options
Diffstat (limited to 'drivers/net/3c59x.c')
-rw-r--r-- | drivers/net/3c59x.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 8db4e6b89482..491ee16da5c1 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c | |||
@@ -1692,12 +1692,14 @@ vortex_open(struct net_device *dev) | |||
1692 | vp->rx_ring[i].next = cpu_to_le32(vp->rx_ring_dma + sizeof(struct boom_rx_desc) * (i+1)); | 1692 | vp->rx_ring[i].next = cpu_to_le32(vp->rx_ring_dma + sizeof(struct boom_rx_desc) * (i+1)); |
1693 | vp->rx_ring[i].status = 0; /* Clear complete bit. */ | 1693 | vp->rx_ring[i].status = 0; /* Clear complete bit. */ |
1694 | vp->rx_ring[i].length = cpu_to_le32(PKT_BUF_SZ | LAST_FRAG); | 1694 | vp->rx_ring[i].length = cpu_to_le32(PKT_BUF_SZ | LAST_FRAG); |
1695 | skb = dev_alloc_skb(PKT_BUF_SZ); | 1695 | |
1696 | skb = __netdev_alloc_skb(dev, PKT_BUF_SZ + NET_IP_ALIGN, | ||
1697 | GFP_KERNEL); | ||
1696 | vp->rx_skbuff[i] = skb; | 1698 | vp->rx_skbuff[i] = skb; |
1697 | if (skb == NULL) | 1699 | if (skb == NULL) |
1698 | break; /* Bad news! */ | 1700 | break; /* Bad news! */ |
1699 | skb->dev = dev; /* Mark as being used by this device. */ | 1701 | |
1700 | skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ | 1702 | skb_reserve(skb, NET_IP_ALIGN); /* Align IP on 16 byte boundaries */ |
1701 | vp->rx_ring[i].addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, PKT_BUF_SZ, PCI_DMA_FROMDEVICE)); | 1703 | vp->rx_ring[i].addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, PKT_BUF_SZ, PCI_DMA_FROMDEVICE)); |
1702 | } | 1704 | } |
1703 | if (i != RX_RING_SIZE) { | 1705 | if (i != RX_RING_SIZE) { |
@@ -2538,7 +2540,7 @@ boomerang_rx(struct net_device *dev) | |||
2538 | struct sk_buff *skb; | 2540 | struct sk_buff *skb; |
2539 | entry = vp->dirty_rx % RX_RING_SIZE; | 2541 | entry = vp->dirty_rx % RX_RING_SIZE; |
2540 | if (vp->rx_skbuff[entry] == NULL) { | 2542 | if (vp->rx_skbuff[entry] == NULL) { |
2541 | skb = dev_alloc_skb(PKT_BUF_SZ); | 2543 | skb = netdev_alloc_skb(dev, PKT_BUF_SZ + NET_IP_ALIGN); |
2542 | if (skb == NULL) { | 2544 | if (skb == NULL) { |
2543 | static unsigned long last_jif; | 2545 | static unsigned long last_jif; |
2544 | if (time_after(jiffies, last_jif + 10 * HZ)) { | 2546 | if (time_after(jiffies, last_jif + 10 * HZ)) { |
@@ -2549,8 +2551,8 @@ boomerang_rx(struct net_device *dev) | |||
2549 | mod_timer(&vp->rx_oom_timer, RUN_AT(HZ * 1)); | 2551 | mod_timer(&vp->rx_oom_timer, RUN_AT(HZ * 1)); |
2550 | break; /* Bad news! */ | 2552 | break; /* Bad news! */ |
2551 | } | 2553 | } |
2552 | skb->dev = dev; /* Mark as being used by this device. */ | 2554 | |
2553 | skb_reserve(skb, 2); /* Align IP on 16 byte boundaries */ | 2555 | skb_reserve(skb, NET_IP_ALIGN); |
2554 | vp->rx_ring[entry].addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, PKT_BUF_SZ, PCI_DMA_FROMDEVICE)); | 2556 | vp->rx_ring[entry].addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, PKT_BUF_SZ, PCI_DMA_FROMDEVICE)); |
2555 | vp->rx_skbuff[entry] = skb; | 2557 | vp->rx_skbuff[entry] = skb; |
2556 | } | 2558 | } |