15 Aug
2023
15 Aug
'23
4 p.m.
On Mon, Aug 14, 2023 at 01:55:19PM +0200, Takashi Iwai wrote:
This patch converts the ASoC dmaenging driver code to use the new unified PCM copy callback. It's a straightforward conversion from *_user() to *_iter() variants.
The process callback is still using the direct pointer as of now, but it'll be converted in the next patch.
Note that copy_from/to_iter() returns the copied bytes, hence the error condition is inverted from copy_from/to_user().
...
if (is_playback)
if (copy_from_user(dma_ptr, buf, bytes))
if (!copy_from_iter(dma_ptr, bytes, buf))
!= bytes ?
return -EFAULT;
Can be compressed to a single conditional:
if (is_playback && copy_from_iter(dma_ptr, bytes, buf) != bytes)
...
if (!is_playback)
if (copy_to_user(buf, dma_ptr, bytes))
if (!copy_to_iter(dma_ptr, bytes, buf)) return -EFAULT;
As per above.
--
With Best Regards,
Andy Shevchenko