From: SF Markus Elfring <elfring@users.sourceforge.net>
To: "dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>
Cc: Julia Lawall <julia.lawall@lip6.fr>,
kernel-janitors@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH 2/2] GPU-DRM-Savage: Less function calls in savage_bci_cmdbuf() after error detection
Date: Thu, 18 Aug 2016 21:48:04 +0200 [thread overview]
Message-ID: <c97563c0-d463-8b15-5956-26d93641a54f@users.sourceforge.net> (raw)
In-Reply-To: <77052ac1-1933-49af-3ad8-6e0eecc1aafe@users.sourceforge.net>
From: Markus Elfring <elfring@users.sourceforge.net>
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 <elfring@users.sourceforge.net>
---
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
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-08-18 19:48 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <566ABCD9.1060404@users.sourceforge.net>
2016-08-18 19:42 ` [PATCH 0/2] GPU-DRM-Savage: Fine-tuning for savage_bci_cmdbuf() SF Markus Elfring
2016-08-18 19:45 ` [PATCH 1/2] GPU-DRM-Savage: Use memdup_user() rather than duplicating SF Markus Elfring
2016-08-18 19:48 ` SF Markus Elfring [this message]
2016-08-19 7:50 ` [PATCH 2/2] GPU-DRM-Savage: Less function calls in savage_bci_cmdbuf() after error detection Daniel Vetter
2016-10-12 12:04 ` SF Markus Elfring
2016-08-19 7:41 ` [PATCH 0/2] GPU-DRM-Savage: Fine-tuning for savage_bci_cmdbuf() Daniel Vetter
2016-09-18 16:48 ` [PATCH 0/5] drm/amdgpu: Fine-tuning for several function implementations SF Markus Elfring
2016-09-18 16:50 ` [PATCH 1/5] drm/amdgpu: Use kmalloc_array() in amdgpu_debugfs_gca_config_read() SF Markus Elfring
2016-09-19 17:25 ` Alex Deucher
2016-09-18 16:51 ` [PATCH 2/5] drm/amdgpu: Improve determination of sizes in two functions SF Markus Elfring
2016-09-18 16:52 ` [PATCH 3/5] drm/amdgpu: Rename a jump label in amdgpu_debugfs_regs_read() SF Markus Elfring
2016-09-18 16:53 ` [PATCH 4/5] drm/amdgpu: Rename a jump label in amdgpu_device_init() SF Markus Elfring
2016-09-19 13:56 ` Deucher, Alexander
2016-09-18 16:54 ` [PATCH 5/5] drm/amdgpu: Adjust checks for null pointers in nine functions SF Markus Elfring
2024-01-05 18:15 ` [PATCH 0/5] drm/amdgpu: Fine-tuning for several function implementations Markus Elfring
2024-01-05 18:29 ` Alex Deucher
2016-09-19 15:51 ` [PATCH 0/5] GPU-DRM: Fine-tuning for four " SF Markus Elfring
2016-09-19 15:53 ` [PATCH 1/5] GPU-DRM: Use kmalloc_array() in drm_legacy_addbufs_pci() SF Markus Elfring
2016-09-19 15:54 ` [PATCH 2/5] GPU-DRM: Replace two kzalloc() calls by kcalloc() " SF Markus Elfring
2016-09-19 15:55 ` [PATCH 3/5] GPU-DRM: Replace a kzalloc() call by kcalloc() in drm_legacy_addbufs_agp() SF Markus Elfring
2016-09-19 15:56 ` [PATCH 4/5] GPU-DRM: Replace a kzalloc() call by kcalloc() in drm_legacy_addbufs_sg() SF Markus Elfring
2016-09-21 11:22 ` Daniel Vetter
2016-09-19 15:58 ` [PATCH 5/5] GPU-DRM: Rename a jump label in drm_legacy_mapbufs() SF Markus Elfring
2016-09-20 8:54 ` [PATCH 0/6] GPU-DRM-GMA500: Fine-tuning for two function implementations SF Markus Elfring
2016-09-20 8:55 ` [PATCH 1/6] GPU-DRM-GMA500: Use kmalloc_array() in mid_get_vbt_data_r10() SF Markus Elfring
2016-09-20 10:06 ` Jani Nikula
2016-09-20 10:30 ` SF Markus Elfring
2016-09-20 8:57 ` [PATCH 2/6] GPU-DRM-GMA500: Rename a jump label " SF Markus Elfring
2016-09-20 10:05 ` Jani Nikula
2016-09-20 8:58 ` [PATCH 3/6] GPU-DRM-GMA500: Move a variable assignment " SF Markus Elfring
2016-09-20 8:59 ` [PATCH 4/6] GPU-DRM-GMA500: Fix indentation for a function call parameter " SF Markus Elfring
2016-09-20 9:00 ` [PATCH 5/6] GPU-DRM-GMA500: One error message less for a GCT revision mismatch in mid_get_vbt_data() SF Markus Elfring
2016-09-20 10:07 ` Jani Nikula
2016-09-20 10:32 ` SF Markus Elfring
2016-09-20 10:48 ` [PATCH 5/6] " Dan Carpenter
2016-09-20 11:03 ` SF Markus Elfring
2016-09-20 11:17 ` Dan Carpenter
2016-09-20 11:30 ` SF Markus Elfring
2016-09-20 12:08 ` [PATCH 5/6] " Jani Nikula
2016-09-20 20:23 ` Patrik Jakobsson
2016-09-20 9:01 ` [PATCH 6/6] GPU-DRM-GMA500: Rename a jump label " SF Markus Elfring
2016-09-20 10:08 ` Jani Nikula
2016-09-20 12:40 ` Dan Carpenter
2016-09-21 16:35 ` [PATCH 00/14] GPU-DRM-OMAP: Fine-tuning for several function implementations SF Markus Elfring
2016-09-21 16:38 ` [PATCH 01/14] GPU-DRM-OMAP: Use kmalloc_array() in tiler_map_show() SF Markus Elfring
2016-09-21 16:39 ` [PATCH 02/14] GPU-DRM-OMAP: Replace another kmalloc() call by " SF Markus Elfring
2016-09-21 16:40 ` [PATCH 03/14] GPU-DRM-OMAP: Less function calls in tiler_map_show() after error detection SF Markus Elfring
2016-09-21 16:41 ` [PATCH 04/14] GPU-DRM-OMAP: Delete an unnecessary variable initialisation in tiler_map_show() Markus Elfring
2016-09-21 16:45 ` SF Markus Elfring
2016-09-21 16:46 ` [PATCH 05/14] GPU-DRM-OMAP: Improve a size determination in dmm_txn_append() SF Markus Elfring
2016-09-21 16:47 ` [PATCH 06/14] GPU-DRM-OMAP: Improve a size determination in omap_dmm_probe() SF Markus Elfring
2016-09-21 16:48 ` [PATCH 07/14] GPU-DRM-OMAP: Rename a jump label " SF Markus Elfring
2016-09-21 16:49 ` [PATCH 08/14] GPU-DRM-OMAP: Rename a jump label in dmm_txn_commit() SF Markus Elfring
2016-09-21 16:50 ` [PATCH 09/14] GPU-DRM-OMAP: Delete an unnecessary variable initialisation " SF Markus Elfring
2016-09-21 16:52 ` [PATCH 10/14] GPU-DRM-OMAP: Use kmalloc_array() in omap_gem_attach_pages() SF Markus Elfring
2016-09-21 16:53 ` [PATCH 11/14] GPU-DRM-OMAP: Replace a kzalloc() call by kcalloc() " SF Markus Elfring
2016-09-21 16:54 ` [PATCH 12/14] GPU-DRM-OMAP: Move a variable assignment " SF Markus Elfring
2016-09-21 16:55 ` [PATCH 13/14] GPU-DRM-OMAP: Rename a jump label in omap_gem_new_dmabuf() SF Markus Elfring
2016-09-21 16:56 ` [PATCH 14/14] GPU-DRM-OMAP: Rename a jump label in four functions SF Markus Elfring
2016-09-22 6:45 ` [PATCH 00/14] GPU-DRM-OMAP: Fine-tuning for several function implementations Daniel Vetter
2016-09-22 6:54 ` Laurent Pinchart
2016-09-22 9:11 ` SF Markus Elfring
2016-09-22 8:30 ` [PATCH 0/4] GPU-DRM-TILCDC: Fine-tuning for two " SF Markus Elfring
2016-09-22 8:31 ` [PATCH 1/4] GPU-DRM-TILCDC: Use kmalloc_array() in kfree_table_init() SF Markus Elfring
2016-09-22 16:55 ` Jyri Sarha
2016-09-22 8:32 ` [PATCH 2/4] GPU-DRM-TILCDC: Return directly after a failed kfree_table_init() in tilcdc_convert_slave_node() SF Markus Elfring
2016-09-22 10:58 ` Dan Carpenter
2016-09-22 16:57 ` Jyri Sarha
2016-09-22 18:17 ` SF Markus Elfring
2016-09-22 8:33 ` [PATCH 3/4] GPU-DRM-TILCDC: Less function calls in tilcdc_convert_slave_node() after error detection SF Markus Elfring
2016-09-22 17:04 ` Jyri Sarha
2016-09-22 18:38 ` SF Markus Elfring
2016-09-22 20:22 ` Jyri Sarha
2016-09-23 7:36 ` SF Markus Elfring
2016-09-23 10:37 ` Jyri Sarha
2016-09-23 10:55 ` SF Markus Elfring
2016-09-23 10:58 ` Rob Clark
2016-09-23 11:19 ` SF Markus Elfring
2016-09-23 11:31 ` Rob Clark
2016-09-23 12:17 ` SF Markus Elfring
2016-09-23 13:04 ` Rob Clark
2016-09-22 8:34 ` [PATCH 4/4] GPU-DRM-TILCDC: Delete unnecessary variable initialisations in tilcdc_convert_slave_node() SF Markus Elfring
2016-09-22 17:32 ` [PATCH 00/14] GPU-DRM-TTM: Fine-tuning for several function implementations SF Markus Elfring
2016-09-22 17:33 ` [PATCH 01/14] GPU-DRM-TTM: Use kmalloc_array() in two functions SF Markus Elfring
2016-09-22 17:34 ` [PATCH 02/14] GPU-DRM-TTM: Rename a jump label in ttm_alloc_new_pages() SF Markus Elfring
2016-09-22 17:35 ` [PATCH 03/14] GPU-DRM-TTM: Rename jump labels in ttm_page_pool_free() SF Markus Elfring
2016-09-22 17:36 ` [PATCH 04/14] GPU-DRM-TTM: Rename a jump label in ttm_page_pool_get_pages() SF Markus Elfring
2016-09-22 17:37 ` [PATCH 05/14] GPU-DRM-TTM: Use kmalloc_array() in two more functions SF Markus Elfring
2016-09-22 17:38 ` [PATCH 06/14] GPU-DRM-TTM: Rename a jump label in ttm_dma_pool_alloc_new_pages() SF Markus Elfring
2016-09-22 17:39 ` [PATCH 07/14] GPU-DRM-TTM: Rename jump labels in ttm_dma_page_pool_free() SF Markus Elfring
2016-09-22 17:40 ` [PATCH 08/14] GPU-DRM-TTM: Rename a jump label in ttm_dma_pool_shrink_scan() SF Markus Elfring
2016-09-22 17:41 ` [PATCH 09/14] GPU-DRM-TTM: Return directly after a failed kzalloc() in ttm_dma_page_alloc_init() SF Markus Elfring
2016-09-22 17:42 ` [PATCH 10/14] GPU-DRM-TTM: Return directly after a failed kobject_init_and_add() " SF Markus Elfring
2016-09-22 17:43 ` [PATCH 11/14] GPU-DRM-TTM: Return an error code only as a constant in ttm_dma_pool_init() SF Markus Elfring
2016-09-22 17:44 ` [PATCH 12/14] GPU-DRM-TTM: Less function calls in ttm_dma_pool_init() after error detection SF Markus Elfring
2016-09-22 17:45 ` [PATCH 13/14] GPU-DRM-TTM: Delete unnecessary variable initialisations in ttm_dma_pool_init() SF Markus Elfring
2016-09-22 17:46 ` [PATCH 14/14] GPU-DRM-TTM: Mark an array of text strings as "const" " SF Markus Elfring
2016-09-22 18:49 ` Joe Perches
2016-09-23 9:44 ` [PATCH 00/14] GPU-DRM-TTM: Fine-tuning for several function implementations Christian König
2016-09-23 10:20 ` SF Markus Elfring
2016-09-23 10:38 ` Christian König
2016-09-23 11:07 ` SF Markus Elfring
2016-09-23 11:17 ` Christian König
2016-09-23 11:49 ` SF Markus Elfring
2016-09-23 13:06 ` Christian König
2016-09-23 12:55 ` Dan Carpenter
2016-09-23 13:46 ` SF Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c97563c0-d463-8b15-5956-26d93641a54f@users.sourceforge.net \
--to=elfring@users.sourceforge.net \
--cc=airlied@linux.ie \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=julia.lawall@lip6.fr \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).