diff mbox

drm/amd/powerplay: fix a reversed condition

Message ID 20160104204255.GB19867@mwanda (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Carpenter Jan. 4, 2016, 8:42 p.m. UTC
This test was reversed so it would end up leading to a NULL dereference.

Fixes: 4630f0faae80 ('drm/amd/powerplay: add Carrizo smu support')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Comments

Alex Deucher Jan. 4, 2016, 9:17 p.m. UTC | #1
On Mon, Jan 4, 2016 at 3:42 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> This test was reversed so it would end up leading to a NULL dereference.
>
> Fixes: 4630f0faae80 ('drm/amd/powerplay: add Carrizo smu support')
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Applied.  thanks!

Alex

>
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
> index e74023b..873a8d2 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
> @@ -818,7 +818,7 @@ static int cz_smu_fini(struct pp_smumgr *smumgr)
>                 return -EINVAL;
>
>         cz_smu = (struct cz_smumgr *)smumgr->backend;
> -       if (!cz_smu) {
> +       if (cz_smu) {
>                 cgs_free_gpu_mem(smumgr->device,
>                                 cz_smu->toc_buffer.handle);
>                 cgs_free_gpu_mem(smumgr->device,
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
SF Markus Elfring Jan. 5, 2016, 9:06 a.m. UTC | #2
> This test was reversed so it would end up leading to a NULL dereference.
> 
> Fixes: 4630f0faae80 ('drm/amd/powerplay: add Carrizo smu support')
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
> index e74023b..873a8d2 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
> @@ -818,7 +818,7 @@ static int cz_smu_fini(struct pp_smumgr *smumgr)
>  		return -EINVAL;
>  
>  	cz_smu = (struct cz_smumgr *)smumgr->backend;
> -	if (!cz_smu) {
> +	if (cz_smu) {
>  		cgs_free_gpu_mem(smumgr->device,
>  				cz_smu->toc_buffer.handle);
>  		cgs_free_gpu_mem(smumgr->device,

Was this issue found by an automatic static source code analysis of a tool
like "Smatch"?
https://blogs.oracle.com/linuxkernel/entry/smatch_static_analysis_tool_overview
http://smatch.sourceforge.net/


Would it be useful to detect similar update candidates by the reuse of scripts
for the semantic patch language?
How do you think about to get additional help and support from a software
like Coccinelle for such search patterns?

Regards,
Markus
Dan Carpenter Jan. 5, 2016, 11:14 a.m. UTC | #3
Yes.  This was a Smatch warning but Coccinelle can also find this kinds
of inconsistent NULL checking.

regards,
dan carpenter
SF Markus Elfring Jan. 5, 2016, 12:36 p.m. UTC | #4
> Yes.  This was a Smatch warning

Thanks for this acknowledgement.

How do you think about to indicate such a detail more often in
your update suggestions and bug reports?

Would it make sense to mark contributions from automatic static
source code analysis by a dedicated tag in the commit message?


> but Coccinelle can also find this kinds of inconsistent NULL checking.

Should we try together to extend the script collection for the
semantic patch language around such use cases?

Regards,
Markus
diff mbox

Patch

diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
index e74023b..873a8d2 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/cz_smumgr.c
@@ -818,7 +818,7 @@  static int cz_smu_fini(struct pp_smumgr *smumgr)
 		return -EINVAL;
 
 	cz_smu = (struct cz_smumgr *)smumgr->backend;
-	if (!cz_smu) {
+	if (cz_smu) {
 		cgs_free_gpu_mem(smumgr->device,
 				cz_smu->toc_buffer.handle);
 		cgs_free_gpu_mem(smumgr->device,