diff options
| author | Ingo Molnar <mingo@kernel.org> | 2017-03-02 08:05:45 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2017-03-02 08:05:45 +0100 | 
| commit | 9d020d33fc1b2faa0eb35859df1381ca5dc94ffe (patch) | |
| tree | adcd4356b93b17b42c9e4ef95c3fea3afa52f3ee /sound/core/timer.c | |
| parent | 6b0b7551428e4caae1e2c023a529465a9a9ae2d4 (diff) | |
| parent | 4977ab6e92e267afe9d8f78438c3db330ca8434c (diff) | |
Merge branch 'linus' into perf/urgent, to resolve conflict
 Conflicts:
	arch/powerpc/configs/85xx/kmp204x_defconfig
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'sound/core/timer.c')
| -rw-r--r-- | sound/core/timer.c | 18 | 
1 files changed, 15 insertions, 3 deletions
diff --git a/sound/core/timer.c b/sound/core/timer.c index fc144f43faa6..ad153149b231 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -1702,9 +1702,21 @@ static int snd_timer_user_params(struct file *file,  		return -EBADFD;  	if (copy_from_user(¶ms, _params, sizeof(params)))  		return -EFAULT; -	if (!(t->hw.flags & SNDRV_TIMER_HW_SLAVE) && params.ticks < 1) { -		err = -EINVAL; -		goto _end; +	if (!(t->hw.flags & SNDRV_TIMER_HW_SLAVE)) { +		u64 resolution; + +		if (params.ticks < 1) { +			err = -EINVAL; +			goto _end; +		} + +		/* Don't allow resolution less than 1ms */ +		resolution = snd_timer_resolution(tu->timeri); +		resolution *= params.ticks; +		if (resolution < 1000000) { +			err = -EINVAL; +			goto _end; +		}  	}  	if (params.queue_size > 0 &&  	    (params.queue_size < 32 || params.queue_size > 1024)) {  | 
