int __init cycx_init(void) 
static int __init cycx_init(void) 
int __init cycx_init(void){	int cnt, err = -ENOMEM;	printk(KERN_INFO "%s v%u.%u %s\n",		cycx_fullname, CYCX_DRV_VERSION, CYCX_DRV_RELEASE,		cycx_copyright);	/* Verify number of cards and allocate adapter data space */	cycx_ncards = min_t(int, cycx_ncards, CYCX_MAX_CARDS);	cycx_ncards = max_t(int, cycx_ncards, 1);	cycx_card_array = kmalloc(sizeof(struct cycx_device) * cycx_ncards,				  GFP_KERNEL);	if (!cycx_card_array)		goto out;	memset(cycx_card_array, 0, sizeof(struct cycx_device) * cycx_ncards);	/* Register adapters with WAN router */	for (cnt = 0; cnt < cycx_ncards; ++cnt) {		struct cycx_device *card = &cycx_card_array[cnt];		struct wan_device *wandev = &card->wandev;		sprintf(card->devname, "%s%d", cycx_drvname, cnt + 1);		wandev->magic    = ROUTER_MAGIC;		wandev->name     = card->devname;		wandev->private  = card;		wandev->setup    = cycx_wan_setup;		wandev->shutdown = cycx_wan_shutdown;		err = register_wan_device(wandev);		if (err) {			printk(KERN_ERR "%s: %s registration failed with "					"error %d!\n",					cycx_drvname, card->devname, err);			break;		}	}	err = -ENODEV;	if (!cnt) {		kfree(cycx_card_array);		goto out;	}	err = 0;	cycx_ncards = cnt;	/* adjust actual number of cards */out:	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7665a08928f241247afe8c76865cdbe4ef5489bf/cycx_main.c/clean/drivers/net/wan/cycx_main.c