X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2F3c527.c;h=a39c446c3429dba5c11cc68889f487068b7bbe44;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=df3240c3c0bf6a7d604879bbb180e6d93e4c3800;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c index df3240c3c..a39c446c3 100644 --- a/drivers/net/3c527.c +++ b/drivers/net/3c527.c @@ -287,6 +287,7 @@ struct net_device *__init mc32_probe(int unit) } } + free_netdev(dev); return ERR_PTR(-ENODEV); } @@ -434,10 +435,10 @@ static int __init mc32_probe1(struct net_device *dev, int slot) * Grab the IRQ */ - err = request_irq(dev->irq, &mc32_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev); + err = request_irq(dev->irq, &mc32_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM, DRV_NAME, dev); if (err) { release_region(dev->base_addr, MC32_IO_EXTENT); - printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); + printk(KERN_ERR "%s: unable to get IRQ %d.\n", DRV_NAME, dev->irq); goto err_exit_ports; } @@ -750,18 +751,15 @@ static int mc32_load_rx_ring(struct net_device *dev) rx_base=lp->rx_chain; - for(i=0; irx_ring[i].skb=alloc_skb(1532, GFP_KERNEL); - skb_reserve(lp->rx_ring[i].skb, 18); - - if(lp->rx_ring[i].skb==NULL) - { - for(;i>=0;i--) + if (lp->rx_ring[i].skb==NULL) { + for (;i>=0;i--) kfree_skb(lp->rx_ring[i].skb); return -ENOBUFS; } - + skb_reserve(lp->rx_ring[i].skb, 18); + p=isa_bus_to_virt(lp->base+rx_base); p->control=0;