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 | } |
