[bug report] drm/panthor: Add the scheduler logical block
Dan Carpenter
dan.carpenter at linaro.org
Wed Apr 10 14:34:22 UTC 2024
On Wed, Apr 10, 2024 at 03:11:52PM +0100, Steven Price wrote:
> On 08/04/2024 08:35, Dan Carpenter wrote:
> > Hello Boris Brezillon,
> >
> > Commit de8548813824 ("drm/panthor: Add the scheduler logical block")
> > from Feb 29, 2024 (linux-next), leads to the following Smatch static
> > checker warning:
> >
> > drivers/gpu/drm/panthor/panthor_sched.c:1153 csg_slot_sync_state_locked()
> > error: uninitialized symbol 'new_state'.
> >
> > drivers/gpu/drm/panthor/panthor_sched.c
> > 1123 static void
> > 1124 csg_slot_sync_state_locked(struct panthor_device *ptdev, u32 csg_id)
> > 1125 {
> > 1126 struct panthor_csg_slot *csg_slot = &ptdev->scheduler->csg_slots[csg_id];
> > 1127 struct panthor_fw_csg_iface *csg_iface;
> > 1128 struct panthor_group *group;
> > 1129 enum panthor_group_state new_state, old_state;
> > 1130
> > 1131 lockdep_assert_held(&ptdev->scheduler->lock);
> > 1132
> > 1133 csg_iface = panthor_fw_get_csg_iface(ptdev, csg_id);
> > 1134 group = csg_slot->group;
> > 1135
> > 1136 if (!group)
> > 1137 return;
> > 1138
> > 1139 old_state = group->state;
> > 1140 switch (csg_iface->output->ack & CSG_STATE_MASK) {
> > ^^^^^^^^^^^^^^
> > This mask is 0x7. Should it be 0x3? That would silence the static
> > checker warning.
>
> The mask is correct - it's effectively a hardware register (well it's
> read/written by the firmware on the hardware). States 4-7 are officially
> "reserved" and Should Not Happen™!
>
> I guess a "default:" case with a WARN_ON() would be the right solution.
>
> Steve
A WARN_ON() won't silence the warning. Plus WARN_ON() is not free in
terms of memory usage. And they're kind of controversial these days to
be honest.
One solution would be to just ignore the static checker warning. These
are a one time thing, and if people have questions in the future, they
can just search lore for this thread.
regards,
dan carpenter
More information about the dri-devel
mailing list