From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754692AbcHSCZ0 (ORCPT ); Thu, 18 Aug 2016 22:25:26 -0400 Received: from mout.web.de ([217.72.192.78]:49913 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753461AbcHSCZX (ORCPT ); Thu, 18 Aug 2016 22:25:23 -0400 Subject: [PATCH 2/2] GPU-DRM-Savage: Less function calls in savage_bci_cmdbuf() after error detection To: "dri-devel@lists.freedesktop.org" , Daniel Vetter , David Airlie References: <566ABCD9.1060404@users.sourceforge.net> <77052ac1-1933-49af-3ad8-6e0eecc1aafe@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: Date: Thu, 18 Aug 2016 21:48:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <77052ac1-1933-49af-3ad8-6e0eecc1aafe@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:dA2T8JM2zZcHEHVlH8S06zV23V9vaSlE6/P3CIyOWWBmYms6LU5 Fh2n25/vY7Yt7SrffHW+vHXiVqVJsrl2t3zLaAU95pD9uG8cBLfAEmE4dH+bHIoC3cAGETI w6I196zGm2FD148SPUNo1Xjhc44zmttyjyk1aIenAv+zut5xw/2EyonysI/3rrxfnOqMCJq De4X5kRQIFy3qZbqmaQyA== X-UI-Out-Filterresults: notjunk:1;V01:K0:m04TORtJKh0=:GK7KVAa2/rs7DmsVJfrRmZ b5BVrJX9xSEY5LY88Dc9L7PSO0vCuvczVey/oP64jW7uEt7Wa2VuVF4mEiE1SzO2l2ijsqRFe chAXp7A1ancGmuRz1B+90bsrHZ64eAOa53l6hExwG/zVF5RL7wgtosmR6fGJNuk3IRAslPizN byH6lxi6yh2t25TfbPjJZaexgrVPsFgGfeBW9k25q9uD8vp/eIXadO72zZsGaR8GNhYvg57Ue k2yrKU0KikfPNgM+UvK+4+Qkun1eRNppmTXvN9/Fh43bpo81C4aZcu9Q9bAz9G9i7eMJSTyGJ 9AB+BGmoDEYx1dkRFkk7ic2aB8V6jehnhirbwq9tkocnnd0k/zxbcmQ/Nx7OP7XK5pr4NDX1l T9Pc4mZGNCuruVSetCLtmyDAJnKeI5pxG8r/sVomlc5EO8UXYdXupHasbSceQZ7in/hXDU5SP Y9iy/mgEuyEa8lNIkazb0hnaICSs4N/n21K76KswD1rLHA7Bn5jtNF/KcDicafnX8N92CXnbB RCav8vSNUQE9kksT7jnbT2WYHZmdet0PONw9+6FaCLztMPhQClJST/osmIisdyttRgwKG6jyR xCrr6rETQ9f9NCShv9PQuYHy0LbwXxuN+QEuEuuwFF+Vlgpucuzw64I6RYf9yt9IYmgvfnwW8 TEicavRy0tI1aPURC+YddkZjdwsn++8zTiiFk7eIVHr9hM7B0Wa0jGGNyWw6GqGF494r4uEeY sCE6Ta54gL0hIhT8aPFDW11iVp8+88YPvA2qVdD+jTLR1e7sMNQoRsL87xEYRuO7DAPtWoruk PvpjX+K Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Thu, 18 Aug 2016 21:28:58 +0200 The kfree() function was called in a few cases by the savage_bci_cmdbuf() function during error handling even if a passed variable contained a null pointer. Adjust jump targets according to the Linux coding style convention. Signed-off-by: Markus Elfring --- drivers/gpu/drm/savage/savage_state.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/savage/savage_state.c b/drivers/gpu/drm/savage/savage_state.c index 3dc0d8f..5b484aa 100644 --- a/drivers/gpu/drm/savage/savage_state.c +++ b/drivers/gpu/drm/savage/savage_state.c @@ -1004,7 +1004,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ kvb_addr = memdup_user(cmdbuf->vb_addr, cmdbuf->vb_size); if (IS_ERR(kvb_addr)) { ret = PTR_ERR(kvb_addr); - goto done; + goto free_cmd; } cmdbuf->vb_addr = kvb_addr; } @@ -1013,13 +1013,13 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ GFP_KERNEL); if (kbox_addr == NULL) { ret = -ENOMEM; - goto done; + goto free_vb; } if (copy_from_user(kbox_addr, cmdbuf->box_addr, cmdbuf->nbox * sizeof(struct drm_clip_rect))) { ret = -EFAULT; - goto done; + goto free_vb; } cmdbuf->box_addr = kbox_addr; } @@ -1052,7 +1052,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ "beyond end of command buffer\n"); DMA_FLUSH(); ret = -EINVAL; - goto done; + goto free_box; } /* fall through */ case SAVAGE_CMD_DMA_PRIM: @@ -1071,7 +1071,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ cmdbuf->vb_stride, cmdbuf->nbox, cmdbuf->box_addr); if (ret != 0) - goto done; + goto free_box; first_draw_cmd = NULL; } } @@ -1086,7 +1086,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ "beyond end of command buffer\n"); DMA_FLUSH(); ret = -EINVAL; - goto done; + goto free_box; } ret = savage_dispatch_state(dev_priv, &cmd_header, (const uint32_t *)cmdbuf->cmd_addr); @@ -1099,7 +1099,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ "beyond end of command buffer\n"); DMA_FLUSH(); ret = -EINVAL; - goto done; + goto free_box; } ret = savage_dispatch_clear(dev_priv, &cmd_header, cmdbuf->cmd_addr, @@ -1117,12 +1117,12 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ cmd_header.cmd.cmd); DMA_FLUSH(); ret = -EINVAL; - goto done; + goto free_box; } if (ret != 0) { DMA_FLUSH(); - goto done; + goto free_box; } } @@ -1133,7 +1133,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ cmdbuf->nbox, cmdbuf->box_addr); if (ret != 0) { DMA_FLUSH(); - goto done; + goto free_box; } } @@ -1147,11 +1147,11 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ savage_freelist_put(dev, dmabuf); } -done: - /* If we didn't need to allocate them, these'll be NULL */ - kfree(kcmd_addr); - kfree(kvb_addr); +free_box: kfree(kbox_addr); - +free_vb: + kfree(kvb_addr); +free_cmd: + kfree(kcmd_addr); return ret; } -- 2.9.3