ret = -ENODEV; 
static int __init smsc_ircc_init(void){	int ret;	IRDA_DEBUG(1, "%s\n", __FUNCTION__);	ret = driver_register(&smsc_ircc_driver);	if (ret) {		IRDA_ERROR("%s, Can't register driver!\n", driver_name);		return ret;	}	dev_count = 0;	if (ircc_fir > 0 && ircc_sir > 0) {		IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir);		IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir);		if (smsc_ircc_open(ircc_fir, ircc_sir, ircc_dma, ircc_irq))			ret = -ENODEV;	} else {		/* try user provided configuration register base address */		if (ircc_cfg > 0) {			IRDA_MESSAGE(" Overriding configuration address "				     "0x%04x\n", ircc_cfg);			if (!smsc_superio_fdc(ircc_cfg))				ret = 0;			if (!smsc_superio_lpc(ircc_cfg))				ret = 0;		}		if (smsc_ircc_look_for_chips() > 0)			ret = 0;	}	if (ret)		driver_unregister(&smsc_ircc_driver);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/505db03639db34ca2c64fe7ee27190d324281f2c/smsc-ircc2.c/buggy/drivers/net/irda/smsc-ircc2.c