On Thu, 12 Jun 2025 12:51:05 +0200, Christophe Leroy wrote: > > Now that snd_pcm_sync_ptr_get_user() and snd_pcm_sync_ptr_put_user() > are converted to user_access_begin/user_access_end(), > snd_pcm_sync_ptr_get_user() is more efficient than a raw get_user() > followed by a copy_from_user(). And because copy_{to/from}_user() are > generic functions focussed on transfer of big data blocks to/from user, > snd_pcm_sync_ptr_put_user() is also more efficient for small amont of > data. > > So use snd_pcm_sync_ptr_get_user() and snd_pcm_sync_ptr_put_user() in > snd_pcm_sync_ptr() too. > > In order to have snd_pcm_mmap_status32 similar to snd_pcm_mmap_status, > replace to tsamp_{sec/nsec} and audio_tstamp_{sec/nsec} by equivalent > struct __snd_timespec. > > snd_pcm_ioctl_sync_ptr_buggy() is left as it is because the conversion > wouldn't be straigh-forward do to the workaround it provides. > > Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
Through a quick glance, all patches look almost fine, but one favor to ask: this patch contains the convert from s32/s32 pair to struct __snd_timespec. It should be factored out to a prerequisite patch instead of burying in a big change. I'm asking it because this timepsec definition is very confusing (and complex) due to historical reasons, and it should be handled with a special care. IIUC, struct __snd_timespec is always s32/s32 for the kernel code, so the conversion must be fine. This needs to be commented in the commit. Thanks! Takashi