if (! refine) runtime->boundary = recalculate_boundary(runtime); 
if (! refine) { unsigned int new_boundary = recalculate_boundary(runtime); if (new_boundary) runtime->boundary = new_boundary; } 
static int snd_pcm_ioctl_hw_params_compat(snd_pcm_substream_t *substream,					  int refine, 					  struct sndrv_pcm_hw_params32 __user *data32){	struct sndrv_pcm_hw_params *data;	snd_pcm_runtime_t *runtime;	int err;	if (! (runtime = substream->runtime))		return -ENOTTY;	data = kmalloc(sizeof(*data), GFP_KERNEL);	if (data == NULL)		return -ENOMEM;	/* only fifo_size is different, so just copy all */	if (copy_from_user(data, data32, sizeof(*data32))) {		err = -EFAULT;		goto error;	}	if (refine)		err = snd_pcm_hw_refine(substream, data);	else		err = snd_pcm_hw_params(substream, data);	if (err < 0)		goto error;	if (copy_to_user(data32, data, sizeof(*data32)) ||	    put_user(data->fifo_size, &data32->fifo_size)) {		err = -EFAULT;		goto error;	}	if (! refine)		runtime->boundary = recalculate_boundary(runtime); error:	kfree(data);	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7153a558ad598ff521f1d9430982e2a4a6865126/pcm_compat.c/buggy/sound/core/pcm_compat.c