set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(1); 
schedule_timeout_interruptible(1); 
void snd_seq_instr_list_free(snd_seq_kinstr_list_t **list_ptr){	snd_seq_kinstr_list_t *list;	snd_seq_kinstr_t *instr;	snd_seq_kcluster_t *cluster;	int idx;	unsigned long flags;	if (list_ptr == NULL)		return;	list = *list_ptr;	*list_ptr = NULL;	if (list == NULL)		return;		for (idx = 0; idx < SNDRV_SEQ_INSTR_HASH_SIZE; idx++) {				while ((instr = list->hash[idx]) != NULL) {			list->hash[idx] = instr->next;			list->count--;			spin_lock_irqsave(&list->lock, flags);			while (instr->use) {				spin_unlock_irqrestore(&list->lock, flags);				set_current_state(TASK_INTERRUPTIBLE);				schedule_timeout(1);				spin_lock_irqsave(&list->lock, flags);			}							spin_unlock_irqrestore(&list->lock, flags);			if (snd_seq_instr_free(instr, 0)<0)				snd_printk(KERN_WARNING "instrument free problem\n");		}		while ((cluster = list->chash[idx]) != NULL) {			list->chash[idx] = cluster->next;			list->ccount--;			kfree(cluster);		}	}	kfree(list);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8433a509c0eb6bb1f33ce39c82c580b8901619ee/seq_instr.c/buggy/sound/core/seq/seq_instr.c