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()? > -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?