OSDN Git Service

ALSA: pcm: introduce INFO_NO_REWINDS flag
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 19 Nov 2021 23:08:50 +0000 (17:08 -0600)
committerMark Brown <broonie@kernel.org>
Wed, 24 Nov 2021 12:57:18 +0000 (12:57 +0000)
commitb456abe63f60ad93c83a526d33b71574bc32656c
tree94c85af14b3d80371e201924a4209673f2723423
parent0e888a74e52db369e19aec908131cf171079b306
ALSA: pcm: introduce INFO_NO_REWINDS flag

When the hardware can only deal with a monotonically increasing
appl_ptr, this flag can be set.

In case the application requests a rewind, be it with a
snd_pcm_rewind() or with a direct change of a mmap'ed pointer followed
by a SNDRV_PCM_IOCTL_SYNC_PTR, this patch checks if a rewind
occurred and returns an error.

Credits to Takashi Iwai for identifying the path with SYNC_PTR and
suggesting the pointer checks.

Suggested-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20211119230852.206310-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/uapi/sound/asound.h
sound/core/pcm_lib.c