media: amphion: ensure the bitops don't cross boundaries
authorMing Qian <ming.qian@nxp.com>
Tue, 18 Jul 2023 09:50:13 +0000 (17:50 +0800)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 25 Jul 2023 07:31:49 +0000 (09:31 +0200)
the supported_instance_count determine the instance index range,
it shouldn't exceed the bits number of instance_mask,
otherwise the bitops of instance_mask may cross boundaries

Fixes: 9f599f351e86 ("media: amphion: add vpu core driver")
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/amphion/vpu_core.c

index bb73b38..1af6fc9 100644 (file)
@@ -88,6 +88,8 @@ static int vpu_core_boot_done(struct vpu_core *core)
 
                core->supported_instance_count = min(core->supported_instance_count, count);
        }
+       if (core->supported_instance_count >= BITS_PER_TYPE(core->instance_mask))
+               core->supported_instance_count = BITS_PER_TYPE(core->instance_mask);
        core->fw_version = fw_version;
        vpu_core_set_state(core, VPU_CORE_ACTIVE);