|
@@ -1763,16 +1763,9 @@ vortex_open(struct net_device *dev)
|
|
vp->rx_ring[i].addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, PKT_BUF_SZ, PCI_DMA_FROMDEVICE));
|
|
vp->rx_ring[i].addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, PKT_BUF_SZ, PCI_DMA_FROMDEVICE));
|
|
}
|
|
}
|
|
if (i != RX_RING_SIZE) {
|
|
if (i != RX_RING_SIZE) {
|
|
- int j;
|
|
|
|
pr_emerg("%s: no memory for rx ring\n", dev->name);
|
|
pr_emerg("%s: no memory for rx ring\n", dev->name);
|
|
- for (j = 0; j < i; j++) {
|
|
|
|
- if (vp->rx_skbuff[j]) {
|
|
|
|
- dev_kfree_skb(vp->rx_skbuff[j]);
|
|
|
|
- vp->rx_skbuff[j] = NULL;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
retval = -ENOMEM;
|
|
retval = -ENOMEM;
|
|
- goto err_free_irq;
|
|
|
|
|
|
+ goto err_free_skb;
|
|
}
|
|
}
|
|
/* Wrap the ring. */
|
|
/* Wrap the ring. */
|
|
vp->rx_ring[i-1].next = cpu_to_le32(vp->rx_ring_dma);
|
|
vp->rx_ring[i-1].next = cpu_to_le32(vp->rx_ring_dma);
|
|
@@ -1782,7 +1775,13 @@ vortex_open(struct net_device *dev)
|
|
if (!retval)
|
|
if (!retval)
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
-err_free_irq:
|
|
|
|
|
|
+err_free_skb:
|
|
|
|
+ for (i = 0; i < RX_RING_SIZE; i++) {
|
|
|
|
+ if (vp->rx_skbuff[i]) {
|
|
|
|
+ dev_kfree_skb(vp->rx_skbuff[i]);
|
|
|
|
+ vp->rx_skbuff[i] = NULL;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
free_irq(dev->irq, dev);
|
|
free_irq(dev->irq, dev);
|
|
err:
|
|
err:
|
|
if (vortex_debug > 1)
|
|
if (vortex_debug > 1)
|