int init_module(void) { struct net_device *dev; struct arcnet_local *lp; int err; dev = dev_alloc(device ? : "arc%d", &err); if (!dev) return err; lp = dev->priv = kmalloc(sizeof(struct arcnet_local), GFP_KERNEL); if (!lp) return -ENOMEM; memset(lp, 0, sizeof(struct arcnet_local)); if (node && node != 0xff) dev->dev_addr[0] = node; lp->backplane = backplane; lp->clockp = clockp & 7; lp->clockm = clockm & 3; lp->timeout = timeout & 3; lp->hw.open_close_ll = com20020isa_open_close; dev->base_addr = io; dev->irq = irq; if (dev->irq == 2) dev->irq = 9; if (com20020isa_probe(dev)) return -EIO; my_dev = dev; return 0; }
static int __init com20020_init(void) { struct net_device *dev; struct arcnet_local *lp; dev = alloc_arcdev(device); if (!dev) return -ENOMEM; if (node && node != 0xff) dev->dev_addr[0] = node; lp = dev->priv; lp->backplane = backplane; lp->clockp = clockp & 7; lp->clockm = clockm & 3; lp->timeout = timeout & 3; lp->hw.owner = THIS_MODULE; dev->base_addr = io; dev->irq = irq; if (dev->irq == 2) dev->irq = 9; if (com20020isa_probe(dev)) { free_netdev(dev); return -EIO; } my_dev = dev; return 0; }