if(audio_devs[dev]->portc!=NULL) kfree(audio_devs[dev]->portc); 
kfree(audio_devs[dev]->portc); 
void ad1848_unload(int io_base, int irq, int dma_playback, int dma_capture, int share_dma){	int i, mixer, dev = 0;	ad1848_info *devc = NULL;	for (i = 0; devc == NULL && i < nr_ad1848_devs; i++)	{		if (adev_info[i].base == io_base)		{			devc = &adev_info[i];			dev = devc->dev_no;		}	}			if (devc != NULL)	{		if(audio_devs[dev]->portc!=NULL)			kfree(audio_devs[dev]->portc);		release_region(devc->base, 4);		if (!share_dma)		{			if (devc->irq > 0) /* There is no point in freeing irq, if it wasn't allocated */				free_irq(devc->irq, (void *)devc->dev_no);			sound_free_dma(dma_playback);			if (dma_playback != dma_capture)				sound_free_dma(dma_capture);		}		mixer = audio_devs[devc->dev_no]->mixer_dev;		if(mixer>=0)			sound_unload_mixerdev(mixer);		if (devc->pmdev)			pm_unregister(devc->pmdev);		nr_ad1848_devs--;		for ( ; i < nr_ad1848_devs ; i++)			adev_info[i] = adev_info[i+1];	}	else		printk(KERN_ERR "ad1848: Can't find device to be unloaded. Base=%x\n", io_base);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/09417379be9b126e10ae7dcd7afc20b666146266/ad1848.c/clean/sound/oss/ad1848.c