summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@nuts.ninka.net>2003-06-03 13:49:17 -0700
committerDavid S. Miller <davem@nuts.ninka.net>2003-06-03 13:49:17 -0700
commit760bebe12514fa33a4724c3eabb7cc996c4b1507 (patch)
treed31f0a5e872deb865aa5add8e0a5125c2bb9f29a
parent60c7e91511150663090eb4936dad912f401a3f5e (diff)
[NET]: Convert PPC 8260_io/enet.c away from init_etherdev().
-rw-r--r--arch/ppc/8260_io/enet.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/arch/ppc/8260_io/enet.c b/arch/ppc/8260_io/enet.c
index 7a24273167aa..1366680e3ece 100644
--- a/arch/ppc/8260_io/enet.c
+++ b/arch/ppc/8260_io/enet.c
@@ -630,19 +630,15 @@ int __init scc_enet_init(void)
bd = (bd_t *)__res;
- /* Allocate some private information.
+ /* Create an Ethernet device instance.
*/
- cep = (struct scc_enet_private *)kmalloc(sizeof(*cep), GFP_KERNEL);
- if (cep == NULL)
+ dev = alloc_etherdev(sizeof(*cep));
+ if (!dev)
return -ENOMEM;
- __clear_user(cep,sizeof(*cep));
+ cep = dev->priv;
spin_lock_init(&cep->lock);
- /* Create an Ethernet device instance.
- */
- dev = init_etherdev(0, 0);
-
/* Get pointer to SCC area in parameter RAM.
*/
ep = (scc_enet_t *)(&immap->im_dprambase[PROFF_ENET]);
@@ -771,6 +767,7 @@ int __init scc_enet_init(void)
/* Allocate a page.
*/
mem_addr = __get_free_page(GFP_KERNEL);
+ /* BUG: no check for failure */
/* Initialize the BD for every fragment in the page.
*/
@@ -808,6 +805,7 @@ int __init scc_enet_init(void)
/* Install our interrupt handler.
*/
request_irq(SIU_INT_ENET, scc_enet_interrupt, 0, "enet", dev);
+ /* BUG: no check for failure */
/* Set GSMR_H to enable all normal operating modes.
* Set GSMR_L to enable Ethernet to MC68160.
@@ -837,7 +835,6 @@ int __init scc_enet_init(void)
io->iop_pdatc |= PC_EST8260_ENET_NOTFD;
dev->base_addr = (unsigned long)ep;
- dev->priv = cep;
/* The CPM Ethernet specific entries in the device structure. */
dev->open = scc_enet_open;
@@ -852,6 +849,12 @@ int __init scc_enet_init(void)
*/
sccp->scc_gsmrl |= (SCC_GSMRL_ENR | SCC_GSMRL_ENT);
+ err = register_netdev(dev);
+ if (err) {
+ kfree(dev);
+ return err;
+ }
+
printk("%s: SCC ENET Version 0.1, ", dev->name);
for (i=0; i<5; i++)
printk("%02x:", dev->dev_addr[i]);