Hi, this is a revised patch set for cleaning up the PCM copy ops using iov_iter to deal with kernel / user-space pointers consistently. The previous patch set was based on sockptr_t: https://lore.kernel.org/r/20230731154718.31048-1-tiwai@xxxxxxx But this approach was NAK'ed as iov_iter is a preferred way for achieving the purpose: https://lore.kernel.org/r/87edkce118.wl-tiwai@xxxxxxx The patch set starts with the missing export of import_ubuf() function, followed by the new copy_ops using iov_iter, extensions of some helpers and replacements of the existing code. It resulted in a good amount of code reduction. Takashi === Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Cc: Andrey Utkin <andrey_utkin@xxxxxxxxxxxx> Cc: Anton Sviridenko <anton@xxxxxxxxxxxxxxxxxxx> Cc: Arnaud Pouliquen <arnaud.pouliquen@xxxxxxxxxxx> Cc: Banajit Goswami <bgoswami@xxxxxxxxxxx> Cc: Bluecherry Maintainers <maintainers@xxxxxxxxxxxxxxxxx> Cc: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx> Cc: Ismael Luceno <ismael@xxxxxxxxxxx> Cc: Lars-Peter Clausen <lars@xxxxxxxxxx> Cc: Mark Brown <broonie@xxxxxxxxxx> Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> Cc: Olivier Moysan <olivier.moysan@xxxxxxxxxxx> Cc: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> Cc: linux-media@xxxxxxxxxxxxxxx Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx === Takashi Iwai (25): iov_iter: Export import_ubuf() ALSA: pcm: Add copy ops with iov_iter ALSA: core: Add memory copy helpers between iov_iter and iomem ALSA: dummy: Convert to generic PCM copy ops ALSA: gus: Convert to generic PCM copy ops ALSA: emu8000: Convert to generic PCM copy ops ALSA: es1938: Convert to generic PCM copy ops ALSA: korg1212: Convert to generic PCM copy ops ALSA: nm256: Convert to generic PCM copy ops ALSA: rme32: Convert to generic PCM copy ops ALSA: rme96: Convert to generic PCM copy ops ALSA: hdsp: Convert to generic PCM copy ops ALSA: rme9652: Convert to generic PCM copy ops ALSA: sh: Convert to generic PCM copy ops ALSA: xen: Convert to generic PCM copy ops ALSA: pcmtest: Update comment about PCM copy ops media: solo6x10: Convert to generic PCM copy ops ASoC: component: Add generic PCM copy ops ASoC: mediatek: Convert to generic PCM copy ops ASoC: qcom: Convert to generic PCM copy ops ASoC: dmaengine: Convert to generic PCM copy ops ASoC: dmaengine: Use iov_iter for process callback, too ALSA: doc: Update description for the new PCM copy ops ASoC: pcm: Drop obsoleted PCM copy_user ops ALSA: pcm: Drop obsoleted PCM copy_user and copy_kernel ops .../kernel-api/writing-an-alsa-driver.rst | 58 ++++------- drivers/media/pci/solo6x10/solo6x10-g723.c | 38 +------- include/sound/dmaengine_pcm.h | 2 +- include/sound/pcm.h | 13 ++- include/sound/soc-component.h | 14 +-- lib/iov_iter.c | 1 + sound/core/memory.c | 56 +++++++++-- sound/core/pcm_lib.c | 95 ++++++++++--------- sound/core/pcm_native.c | 2 +- sound/drivers/dummy.c | 12 +-- sound/drivers/pcmtest.c | 2 +- sound/isa/gus/gus_pcm.c | 23 +---- sound/isa/sb/emu8000_pcm.c | 74 ++++----------- sound/pci/es1938.c | 30 +----- sound/pci/korg1212/korg1212.c | 50 +++------- sound/pci/nm256/nm256.c | 42 ++------ sound/pci/rme32.c | 50 +++------- sound/pci/rme96.c | 42 ++------ sound/pci/rme9652/hdsp.c | 42 ++------ sound/pci/rme9652/rme9652.c | 46 ++------- sound/sh/sh_dac_audio.c | 25 +---- sound/soc/atmel/mchp-pdmc.c | 2 +- sound/soc/mediatek/common/mtk-btcvsd.c | 23 ++--- sound/soc/qcom/lpass-platform.c | 13 +-- sound/soc/soc-component.c | 10 +- sound/soc/soc-generic-dmaengine-pcm.c | 18 ++-- sound/soc/soc-pcm.c | 4 +- sound/soc/stm/stm32_sai_sub.c | 2 +- sound/xen/xen_snd_front_alsa.c | 55 ++--------- 29 files changed, 263 insertions(+), 581 deletions(-) -- 2.35.3