diff options
author | Joerg Roedel <jroedel@suse.de> | 2020-05-13 12:01:33 +0200 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2020-05-13 12:01:33 +0200 |
commit | ec9b40cffdb68c4ea1ebdcd1648ed6ce15c4449e (patch) | |
tree | 27b964f4377bf1ac712c118a6a3fb945476c7da6 /sound/core/oss/pcm_plugin.c | |
parent | 3a0ce12e3b8e3cb7d54569a42aec743cc93f4f0d (diff) | |
parent | 0e698dfa282211e414076f9dc7e83c1c288314fd (diff) |
Merge tag 'v5.7-rc4' into core
Linux 5.7-rc4
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; |