On Sat, 02 Sep 2023 07:36:46 +0200, Al Viro wrote: > > On Tue, Aug 15, 2023 at 09:01:17PM +0200, Takashi Iwai wrote: > > + else if (copy_from_iter(&sval, 2, iter) != 2) \ > > + return -EFAULT; \ > > copy_from_iter_full()? It's a place in an internal copy to carry each 16bit word, so this is intentional. > > -static int emu8k_pcm_copy_kernel(struct snd_pcm_substream *subs, > > - int voice, unsigned long pos, > > - void *src, unsigned long count) > > -{ > > - struct snd_emu8k_pcm *rec = subs->runtime->private_data; > > - > > - /* convert to word unit */ > > - pos = (pos << 1) + rec->loop_start[voice]; > > - count <<= 1; > > - LOOP_WRITE(rec, pos, src, count, COPY_KERNEL); > > + LOOP_WRITE(rec, pos, src, count); > > return 0; > > } > > > > @@ -483,16 +456,15 @@ static int emu8k_pcm_silence(struct snd_pcm_substream *subs, > > /* convert to word unit */ > > pos = (pos << 1) + rec->loop_start[voice]; > > count <<= 1; > > - LOOP_WRITE(rec, pos, NULL, count, FILL_SILENCE); > > + LOOP_WRITE(rec, pos, USER_SOCKPTR(NULL), count); > > USER_SOCKPTR? Oh, obviously a leftover :-< It's a code in #if-0 block, and compiler didn't catch it. Takashi