ASoC: SOF: Intel: hda-ipc: fix reply size checking
authorGuennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Mon, 2 Aug 2021 15:17:49 +0000 (10:17 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 3 Aug 2021 00:44:59 +0000 (01:44 +0100)
Checking that two values don't have common bits makes no sense,
strict equality is meant.

Fixes: f3b433e4699f ("ASoC: SOF: Implement Probe IPC API")
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210802151749.15417-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/intel/hda-ipc.c

index c91aa951df22618954c9b42eac8e892fff780665..acfeca42604cdef019c665509e5e37a24c67c198 100644 (file)
@@ -107,8 +107,8 @@ void hda_dsp_ipc_get_reply(struct snd_sof_dev *sdev)
        } else {
                /* reply correct size ? */
                if (reply.hdr.size != msg->reply_size &&
-                       /* getter payload is never known upfront */
-                       !(reply.hdr.cmd & SOF_IPC_GLB_PROBE)) {
+                   /* getter payload is never known upfront */
+                   ((reply.hdr.cmd & SOF_GLB_TYPE_MASK) != SOF_IPC_GLB_PROBE)) {
                        dev_err(sdev->dev, "error: reply expected %zu got %u bytes\n",
                                msg->reply_size, reply.hdr.size);
                        ret = -EINVAL;