From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: re: drm/vmwgfx: Fix compat shader namespace Date: Wed, 9 Jul 2014 15:48:07 +0300 Message-ID: <20140709124807.GA7707@mwanda> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) by gabe.freedesktop.org (Postfix) with ESMTP id CBFD16E2DD for ; Wed, 9 Jul 2014 05:48:14 -0700 (PDT) Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: thellstrom@vmware.com Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Hello Thomas Hellstrom, The patch 18e4a4669c50: "drm/vmwgfx: Fix compat shader namespace" from Jun 9, 2014, leads to the following static checker warning: drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c:477 vmw_cmd_res_reloc_add() warn: missing error code here? 'kzalloc()' failed. drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 468 469 ret = vmw_resource_context_res_add(dev_priv, sw_context, res); 470 if (unlikely(ret != 0)) 471 goto out_err; 472 node->staged_bindings = 473 kzalloc(sizeof(*node->staged_bindings), GFP_KERNEL); 474 if (node->staged_bindings == NULL) { 475 DRM_ERROR("Failed to allocate context binding " 476 "information.\n"); 477 goto out_err; This should just be "return -ENOMEM;". The goto is misleading because you expect it to do something useful. Soon checkpatch.pl will start complaining about the extra DRM_ERROR() because kzalloc() has a more useful printk builtin and this just wastes memory and makes the code more verbose. Speaking of verbose, all the likely/unlikely annotations should be removed. If the code were more readable then the missing error code would have been more noticeable. This code is buggy because it is ugly; there is a direct cause effect relationship. 478 } 479 INIT_LIST_HEAD(&node->staged_bindings->list); 480 } 481 482 if (p_val) 483 *p_val = node; 484 485 out_err: 486 return ret; 487 } regards, dan carpenter