--- sound/core/oss/pcm_plugin.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN sound/core/oss/pcm_plugin.c~gcc-35-pcm_plugin-warnings sound/core/oss/pcm_plugin.c --- 25/sound/core/oss/pcm_plugin.c~gcc-35-pcm_plugin-warnings 2004-01-17 14:08:45.000000000 -0800 +++ 25-akpm/sound/core/oss/pcm_plugin.c 2004-01-17 14:09:59.000000000 -0800 @@ -857,11 +857,14 @@ int snd_pcm_area_silence(const snd_pcm_c silence = snd_pcm_format_silence_64(format); if (dst_area->step == (unsigned int) width) { size_t dwords = samples * width / 64; + u_int64_t *dst64 = (u_int64_t *)dst; + samples -= dwords * 64 / width; while (dwords-- > 0) - *((u_int64_t*)dst)++ = silence; + *dst64++ = silence; if (samples == 0) return 0; + dst = (char *)dst64; } dst_step = dst_area->step / 8; switch (width) { _