drm/amd/powerplay: implement smu7 hwmgr to manager asics with smu ip version 7.

Dan Carpenter dan.carpenter at oracle.com
Tue Oct 11 07:11:05 UTC 2016


Hello Rex Zhu,

This is a semi-automatic email about new static checker warnings.

The patch 599a7e9fe1b6: "drm/amd/powerplay: implement smu7 hwmgr to 
manager asics with smu ip version 7." from Sep 9, 2016, leads to the 
following Smatch complaint:

drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/smu7_hwmgr.c:3809 smu7_check_states_equal()
	 warn: variable dereferenced before check 'pstate1' (see line 3805)

drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/smu7_hwmgr.c
  3804	{
  3805		const struct smu7_power_state *psa = cast_const_phw_smu7_power_state(pstate1);
                                                                                     ^^^^^^^
  3806		const struct smu7_power_state *psb = cast_const_phw_smu7_power_state(pstate2);
                                                                                     ^^^^^^^
New dereferences.

  3807		int i;
  3808	
  3809		if (pstate1 == NULL || pstate2 == NULL || equal == NULL)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Checked too late.

Just as an aside.  People really don't review code in initializers.
I've commented on this before, and other people have noted it as well
but other people are like "In that case, those people shouldn't be
kernel devs!" which is so ignorant.  Everyone consistently makes the
same mistakes.  I've spent so many hours looking at basically this same
bug over and over and everyone does it.

That's nothing to do with your code, in particular, I just wanted to
update you on how my morning has been going.  (Pretty well, thanks,
although I'm due for a second cup of coffee).

  3810			return -EINVAL;
  3811	

regards,
dan carpenter


More information about the dri-devel mailing list