diff options
Diffstat (limited to 'sound/core/rawmidi.c')
| -rw-r--r-- | sound/core/rawmidi.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 6c0a4a67ad2e..6f30231bdb88 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -873,12 +873,21 @@ static long snd_rawmidi_ioctl(struct file *file, unsigned int cmd, unsigned long  			return -EINVAL;  		}  	} +	case SNDRV_RAWMIDI_IOCTL_USER_PVERSION: +		if (get_user(rfile->user_pversion, (unsigned int __user *)arg)) +			return -EFAULT; +		return 0; +  	case SNDRV_RAWMIDI_IOCTL_PARAMS:  	{  		struct snd_rawmidi_params params;  		if (copy_from_user(¶ms, argp, sizeof(struct snd_rawmidi_params)))  			return -EFAULT; +		if (rfile->user_pversion < SNDRV_PROTOCOL_VERSION(2, 0, 2)) { +			params.mode = 0; +			memset(params.reserved, 0, sizeof(params.reserved)); +		}  		switch (params.stream) {  		case SNDRV_RAWMIDI_STREAM_OUTPUT:  			if (rfile->output == NULL) |