From: Mark Brown Date: Wed, 1 Apr 2026 16:57:34 +0000 (+0100) Subject: ALSA: compress: Refuse to update timestamps for unconfigured streams X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf6c18cf83e48986ac40a053d09d3c33624135f6;p=thirdparty%2Flinux.git ALSA: compress: Refuse to update timestamps for unconfigured streams There are a number of mechanisms, including the userspace accessible timestamp and buffer availability ioctl()s, which allow us to trigger a timestamp update on a stream before it has been configured. Since drivers might rely on stream configuration for reporting of pcm_io_frames, including potentially doing a division by the number of channels, and these operations are not meaningful for an unconfigured stream reject attempts to read timestamps before any configuration is done. Signed-off-by: Mark Brown Acked-by: Vinod Koul Signed-off-by: Takashi Iwai Link: https://patch.msgid.link/20260401-alsa-unconfigured-tstamp-v1-1-694c2cb5f71d@kernel.org --- diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index 5a0308eb4e31d..db9f516df8422 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -185,6 +185,14 @@ static int snd_compr_update_tstamp(struct snd_compr_stream *stream, { if (!stream->ops->pointer) return -ENOTSUPP; + + switch (stream->runtime->state) { + case SNDRV_PCM_STATE_OPEN: + return -EBADFD; + default: + break; + } + stream->ops->pointer(stream, tstamp); pr_debug("dsp consumed till %u total %llu bytes\n", tstamp->byte_offset, tstamp->copied_total);