ASoC: SOF: IPC: fix implicit type overflow
authorCurtis Malainey <cujomalainey@chromium.org>
Fri, 20 Nov 2020 14:40:25 +0000 (16:40 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 20 Nov 2020 16:42:14 +0000 (16:42 +0000)
Implicit values may have a length of 15bits (s16) so we need to declare
the proper size so we don't get undefined behaviour. This appears to be
arch and compiler dependent. This commit is to keep the headers aligned
between the firmware and kernel. UBSan discovered this bug in the
firmware.

Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20201120144025.2166023-1-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/sof/header.h

index 2d35997ace404e7b09ef870c7ffd61c5d4a6f755..571e1dd54b894a9f3074df59f15eb8037b04e00f 100644 (file)
 
 /* Global Message - Generic */
 #define SOF_GLB_TYPE_SHIFT                     28
-#define SOF_GLB_TYPE_MASK                      (0xf << SOF_GLB_TYPE_SHIFT)
+#define SOF_GLB_TYPE_MASK                      (0xfL << SOF_GLB_TYPE_SHIFT)
 #define SOF_GLB_TYPE(x)                                ((x) << SOF_GLB_TYPE_SHIFT)
 
 /* Command Message - Generic */
 #define SOF_CMD_TYPE_SHIFT                     16
-#define SOF_CMD_TYPE_MASK                      (0xfff << SOF_CMD_TYPE_SHIFT)
+#define SOF_CMD_TYPE_MASK                      (0xfffL << SOF_CMD_TYPE_SHIFT)
 #define SOF_CMD_TYPE(x)                                ((x) << SOF_CMD_TYPE_SHIFT)
 
 /* Global Message Types */