if (smsc_ircc_look_for_chips() > 0) ret = 0; 
if (ret) driver_unregister(&smsc_ircc_driver); 
static int __init smsc_ircc_init(void){	int ret = -ENODEV;	IRDA_DEBUG(1, "%s\n", __FUNCTION__);	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) == 0)			return 0;		return -ENODEV;	}	/* 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;	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6bb3b2cd40973ca67c9c6ab26c34df61680f5f84/smsc-ircc2.c/buggy/drivers/net/irda/smsc-ircc2.c