diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2020-05-19 20:34:12 +0200 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2020-05-19 20:34:12 +0200 |
| commit | 9013196a467e770e1470cccee6c0fe435ef37c66 (patch) | |
| tree | 2aefbb9d14a1a7513af9e752fe5bb80cf6b00c0c /sound/core/oss/pcm_plugin.c | |
| parent | 2a0a24ebb499c9d499eea948d3fc108f936e36d4 (diff) | |
| parent | 39f23ce07b9355d05a64ae303ce20d1c4b92b957 (diff) | |
Merge branch 'sched/urgent'
Diffstat (limited to 'sound/core/oss/pcm_plugin.c')
| -rw-r--r-- | sound/core/oss/pcm_plugin.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/core/oss/pcm_plugin.c b/sound/core/oss/pcm_plugin.c index 59d62f05658f..1545f8fdb4db 100644 --- a/sound/core/oss/pcm_plugin.c +++ b/sound/core/oss/pcm_plugin.c @@ -205,13 +205,14 @@ static snd_pcm_sframes_t calc_dst_frames(struct snd_pcm_substream *plug, plugin = snd_pcm_plug_first(plug); while (plugin && frames > 0) { plugin_next = plugin->next; + if (check_size && plugin->buf_frames && + frames > plugin->buf_frames) + frames = plugin->buf_frames; if (plugin->dst_frames) { frames = plugin->dst_frames(plugin, frames); if (frames < 0) return frames; } - if (check_size && frames > plugin->buf_frames) - frames = plugin->buf_frames; plugin = plugin_next; } return frames; @@ -225,14 +226,15 @@ static snd_pcm_sframes_t calc_src_frames(struct snd_pcm_substream *plug, plugin = snd_pcm_plug_last(plug); while (plugin && frames > 0) { - if (check_size && frames > plugin->buf_frames) - frames = plugin->buf_frames; plugin_prev = plugin->prev; if (plugin->src_frames) { frames = plugin->src_frames(plugin, frames); if (frames < 0) return frames; } + if (check_size && plugin->buf_frames && + frames > plugin->buf_frames) + frames = plugin->buf_frames; plugin = plugin_prev; } return frames; |
