int err, gfp_mask; 
int err; unsigned int gfp_mask; 
static int snd_seq_gf1_copy_wave_from_stream(snd_gf1_ops_t *ops,					     gf1_instrument_t *ip,					     char __user **data,					     long *len,					     int atomic){	gf1_wave_t *wp, *prev;	gf1_xwave_t xp;	int err, gfp_mask;	unsigned int real_size;		gfp_mask = atomic ? GFP_ATOMIC : GFP_KERNEL;	if (*len < (long)sizeof(xp))		return -EINVAL;	if (copy_from_user(&xp, *data, sizeof(xp)))		return -EFAULT;	*data += sizeof(xp);	*len -= sizeof(xp);	wp = kcalloc(1, sizeof(*wp), gfp_mask);	if (wp == NULL)		return -ENOMEM;	wp->share_id[0] = le32_to_cpu(xp.share_id[0]);	wp->share_id[1] = le32_to_cpu(xp.share_id[1]);	wp->share_id[2] = le32_to_cpu(xp.share_id[2]);	wp->share_id[3] = le32_to_cpu(xp.share_id[3]);	wp->format = le32_to_cpu(xp.format);	wp->size = le32_to_cpu(xp.size);	wp->start = le32_to_cpu(xp.start);	wp->loop_start = le32_to_cpu(xp.loop_start);	wp->loop_end = le32_to_cpu(xp.loop_end);	wp->loop_repeat = le16_to_cpu(xp.loop_repeat);	wp->flags = xp.flags;	wp->sample_rate = le32_to_cpu(xp.sample_rate);	wp->low_frequency = le32_to_cpu(xp.low_frequency);	wp->high_frequency = le32_to_cpu(xp.high_frequency);	wp->root_frequency = le32_to_cpu(xp.root_frequency);	wp->tune = le16_to_cpu(xp.tune);	wp->balance = xp.balance;	memcpy(wp->envelope_rate, xp.envelope_rate, 6);	memcpy(wp->envelope_offset, xp.envelope_offset, 6);	wp->tremolo_sweep = xp.tremolo_sweep;	wp->tremolo_rate = xp.tremolo_rate;	wp->tremolo_depth = xp.tremolo_depth;	wp->vibrato_sweep = xp.vibrato_sweep;	wp->vibrato_rate = xp.vibrato_rate;	wp->vibrato_depth = xp.vibrato_depth;	wp->scale_frequency = le16_to_cpu(xp.scale_frequency);	wp->scale_factor = le16_to_cpu(xp.scale_factor);	real_size = snd_seq_gf1_size(wp->size, wp->format);	if ((long)real_size > *len) {		kfree(wp);		return -ENOMEM;	}	if (ops->put_sample) {		err = ops->put_sample(ops->private_data, wp,				      *data, real_size, atomic);		if (err < 0) {			kfree(wp);			return err;		}	}	*data += real_size;	*len -= real_size;	prev = ip->wave;	if (prev) {		while (prev->next) prev = prev->next;		prev->next = wp;	} else {		ip->wave = wp;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/5a0f217d96656068f0f1e5cda16c35945f979b16/ainstr_gf1.c/clean/sound/core/seq/instr/ainstr_gf1.c