diff options
Diffstat (limited to 'sound/core/oss/pcm_oss.c')
-rw-r--r-- | sound/core/oss/pcm_oss.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 6f90dbb76804..a293982bdd21 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c | |||
@@ -124,13 +124,12 @@ int snd_pcm_plugin_append(snd_pcm_plugin_t *plugin) | |||
124 | 124 | ||
125 | static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames) | 125 | static long snd_pcm_oss_bytes(snd_pcm_substream_t *substream, long frames) |
126 | { | 126 | { |
127 | long bytes = 0; | ||
128 | snd_pcm_runtime_t *runtime = substream->runtime; | 127 | snd_pcm_runtime_t *runtime = substream->runtime; |
129 | snd_pcm_uframes_t buffer_size = snd_pcm_lib_buffer_bytes(substream); | 128 | snd_pcm_uframes_t buffer_size = snd_pcm_lib_buffer_bytes(substream); |
130 | bytes = frames_to_bytes(runtime, frames); | 129 | frames = frames_to_bytes(runtime, frames); |
131 | if (buffer_size == runtime->oss.buffer_bytes) | 130 | if (buffer_size == runtime->oss.buffer_bytes) |
132 | return bytes; | 131 | return frames; |
133 | return (runtime->oss.buffer_bytes * frames) / buffer_size; | 132 | return (long)(((int64_t)runtime->oss.buffer_bytes * (int64_t)frames) / (int64_t)buffer_size); |
134 | } | 133 | } |
135 | 134 | ||
136 | static long snd_pcm_alsa_frames(snd_pcm_substream_t *substream, long bytes) | 135 | static long snd_pcm_alsa_frames(snd_pcm_substream_t *substream, long bytes) |