void __exit mcdx_exit(void)
static void __exit mcdx_exit(void)
void __exit mcdx_exit(void){	int i;	xinfo("cleanup_module called\n");	for (i = 0; i < MCDX_NDRIVES; i++) {		struct s_drive_stuff *stuffp = mcdx_stuffp[i];		if (!stuffp)			continue;		del_gendisk(stuffp->disk);		if (unregister_cdrom(&stuffp->info)) {			printk(KERN_WARNING "Can't unregister cdrom mcdx\n");			continue;		}		put_disk(stuffp->disk);		release_region(stuffp->wreg_data, MCDX_IO_SIZE);		free_irq(stuffp->irq, NULL);		if (stuffp->toc) {			xtrace(MALLOC, "cleanup_module() free toc @ %p\n",			       stuffp->toc);			kfree(stuffp->toc);		}		xtrace(MALLOC, "cleanup_module() free stuffp @ %p\n",		       stuffp);		mcdx_stuffp[i] = NULL;		kfree(stuffp);	}	if (unregister_blkdev(MAJOR_NR, "mcdx") != 0) {		xwarn("cleanup() unregister_blkdev() failed\n");	}	blk_cleanup_queue(mcdx_queue);#if !MCDX_QUIET	else	xinfo("cleanup() succeeded\n");#endif}