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@suse.de 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@suse.de
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@zeniv.linux.org.uk Cc: Andy Shevchenko andriy.shevchenko@linux.intel.com Cc: Andrey Utkin andrey_utkin@fastmail.com Cc: Anton Sviridenko anton@corp.bluecherry.net Cc: Arnaud Pouliquen arnaud.pouliquen@foss.st.com Cc: Banajit Goswami bgoswami@quicinc.com Cc: Bluecherry Maintainers maintainers@bluecherrydvr.com Cc: Claudiu Beznea claudiu.beznea@microchip.com Cc: Ismael Luceno ismael@iodev.co.uk Cc: Lars-Peter Clausen lars@metafoo.de Cc: Mark Brown broonie@kernel.org Cc: Mauro Carvalho Chehab mchehab@kernel.org Cc: Oleksandr Andrushchenko oleksandr_andrushchenko@epam.com Cc: Olivier Moysan olivier.moysan@foss.st.com Cc: Srinivas Kandagatla srinivas.kandagatla@linaro.org Cc: linux-media@vger.kernel.org Cc: xen-devel@lists.xenproject.org
===
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(-)