ASoC: Intel: avs: Fix potential integer overflow
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 5 Apr 2024 09:09:23 +0000 (11:09 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 5 Apr 2024 12:13:07 +0000 (13:13 +0100)
While stream_tag for CLDMA on SKL-based platforms is always 1, function
hda_cldma_setup() uses AZX_SD_CTL_STRM() macro which does:
stream_tag << 20

what combined with stream_tag type of 'unsigned int' generates a
potential overflow issue. Update the field type to fix that.

Fixes: 45864e49a05a ("ASoC: Intel: avs: Implement CLDMA transfer")
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://msgid.link/r/20240405090929.1184068-8-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/avs/cldma.c

index d7a9390b5e483c91dc0939da1fbdb1d1aeaaacff..585579840b646ee906ac9b98039479ed0728f00d 100644 (file)
@@ -35,7 +35,7 @@ struct hda_cldma {
 
        unsigned int buffer_size;
        unsigned int num_periods;
-       unsigned int stream_tag;
+       unsigned char stream_tag;
        void __iomem *sd_addr;
 
        struct snd_dma_buffer dmab_data;