patch-2.4.0-test11 linux/drivers/net/a2065.c
Next file: linux/drivers/net/ac3200.c
Previous file: linux/drivers/net/Space.c
Back to the patch index
Back to the overall index
- Lines: 98
- Date:
Thu Nov 16 12:51:28 2000
- Orig file:
v2.4.0-test10/linux/drivers/net/a2065.c
- Orig date:
Tue Oct 31 12:42:26 2000
diff -u --recursive --new-file v2.4.0-test10/linux/drivers/net/a2065.c linux/drivers/net/a2065.c
@@ -261,7 +261,7 @@
barrier();
if ((i == 100) || (ll->rdp & LE_C0_ERR)) {
printk ("LANCE unopened after %d ticks, csr0=%4.4x.\n", i, ll->rdp);
- return -1;
+ return -EIO;
}
/* Clear IDON by writing a "1", enable interrupts and start lance */
@@ -488,14 +488,14 @@
{
struct lance_private *lp = (struct lance_private *)dev->priv;
volatile struct lance_regs *ll = lp->ll;
- int status = 0;
+ int ret;
last_dev = dev;
/* Install the Interrupt handler */
- if (request_irq(IRQ_AMIGA_PORTS, lance_interrupt, SA_SHIRQ,
- "a2065 Ethernet", dev))
- return -EAGAIN;
+ ret = request_irq(IRQ_AMIGA_PORTS, lance_interrupt, SA_SHIRQ,
+ dev->name, dev);
+ if (ret) return ret;
/* Stop the Lance */
ll->rap = LE_CSR0;
@@ -506,11 +506,7 @@
netif_start_queue(dev);
- status = init_restart_lance (lp);
-
- MOD_INC_USE_COUNT;
-
- return status;
+ return init_restart_lance (lp);
}
static int lance_close (struct net_device *dev)
@@ -526,9 +522,6 @@
ll->rdp = LE_C0_STOP;
free_irq(IRQ_AMIGA_PORTS, dev);
-
- MOD_DEC_USE_COUNT;
-
return 0;
}
@@ -727,6 +720,7 @@
while ((z = zorro_find_device(ZORRO_WILDCARD, z))) {
unsigned long board, base_addr, mem_start;
+ struct resource *r1, *r2;
int is_cbm;
if (z->id == ZORRO_PROD_CBM_A2065_1 ||
@@ -741,25 +735,27 @@
base_addr = board+A2065_LANCE;
mem_start = board+A2065_RAM;
- if (!request_mem_region(base_addr, sizeof(struct lance_regs),
- "Am7990"))
- continue;
- if (!request_mem_region(mem_start, A2065_RAM_SIZE, "RAM")) {
- release_mem_region(base_addr,
- sizeof(struct lance_regs));
+ r1 = request_mem_region(base_addr, sizeof(struct lance_regs),
+ "Am7990");
+ if (!r1) continue;
+ r2 = request_mem_region(mem_start, A2065_RAM_SIZE, "RAM");
+ if (!r2) {
+ release_resource(r1);
continue;
}
dev = init_etherdev(NULL, sizeof(struct lance_private));
if (dev == NULL) {
- release_mem_region(base_addr,
- sizeof(struct lance_regs));
- release_mem_region(mem_start, A2065_RAM_SIZE);
+ release_resource(r1);
+ release_resource(r2);
return -ENOMEM;
}
- priv = (struct lance_private *)dev->priv;
- memset(priv, 0, sizeof(struct lance_private));
+ SET_MODULE_OWNER(dev);
+ priv = dev->priv;
+
+ r1->name = dev->name;
+ r2->name = dev->name;
priv->dev = dev;
dev->dev_addr[0] = 0x00;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)