2013-03-11 19:26:09

by Alexandru Gheorghiu

[permalink] [raw]
Subject: [PATCH] drivers: gpu: drm: exynos: Replaced kzalloc & memcpy with kmemdup

Replaced calls to kzalloc followed by memcpy with call to kmemdup.
Patch found using coccinelle.

Signed-off-by: Alexandru Gheorghiu <[email protected]>
---
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index 13ccbd4..9504b0c 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -117,13 +117,12 @@ static struct edid *vidi_get_edid(struct device *dev,
}

edid_len = (1 + ctx->raw_edid->extensions) * EDID_LENGTH;
- edid = kzalloc(edid_len, GFP_KERNEL);
+ edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL);
if (!edid) {
DRM_DEBUG_KMS("failed to allocate edid\n");
return ERR_PTR(-ENOMEM);
}

- memcpy(edid, ctx->raw_edid, edid_len);
return edid;
}

@@ -563,12 +562,11 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
return -EINVAL;
}
edid_len = (1 + raw_edid->extensions) * EDID_LENGTH;
- ctx->raw_edid = kzalloc(edid_len, GFP_KERNEL);
+ ctx->raw_edid = kmemdup(raw_edid, edid_len, GFP_KERNEL);
if (!ctx->raw_edid) {
DRM_DEBUG_KMS("failed to allocate raw_edid.\n");
return -ENOMEM;
}
- memcpy(ctx->raw_edid, raw_edid, edid_len);
} else {
/*
* with connection = 0, free raw_edid
--
1.7.9.5


2013-03-12 02:08:28

by Seung-Woo Kim

[permalink] [raw]
Subject: Re: [PATCH] drivers: gpu: drm: exynos: Replaced kzalloc & memcpy with kmemdup

Good point.

Acked-by: Seung-Woo Kim <[email protected]>

On 2013년 03월 12일 04:25, Alexandru Gheorghiu wrote:
> Replaced calls to kzalloc followed by memcpy with call to kmemdup.
> Patch found using coccinelle.
>
> Signed-off-by: Alexandru Gheorghiu <[email protected]>
> ---
> drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index 13ccbd4..9504b0c 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -117,13 +117,12 @@ static struct edid *vidi_get_edid(struct device *dev,
> }
>
> edid_len = (1 + ctx->raw_edid->extensions) * EDID_LENGTH;
> - edid = kzalloc(edid_len, GFP_KERNEL);
> + edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL);
> if (!edid) {
> DRM_DEBUG_KMS("failed to allocate edid\n");
> return ERR_PTR(-ENOMEM);
> }
>
> - memcpy(edid, ctx->raw_edid, edid_len);
> return edid;
> }
>
> @@ -563,12 +562,11 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
> return -EINVAL;
> }
> edid_len = (1 + raw_edid->extensions) * EDID_LENGTH;
> - ctx->raw_edid = kzalloc(edid_len, GFP_KERNEL);
> + ctx->raw_edid = kmemdup(raw_edid, edid_len, GFP_KERNEL);
> if (!ctx->raw_edid) {
> DRM_DEBUG_KMS("failed to allocate raw_edid.\n");
> return -ENOMEM;
> }
> - memcpy(ctx->raw_edid, raw_edid, edid_len);
> } else {
> /*
> * with connection = 0, free raw_edid
>

--
Seung-Woo Kim
Samsung Software R&D Center
--

Subject: Re: [PATCH] drivers: gpu: drm: exynos: Replaced kzalloc & memcpy with kmemdup

Applied.

Thanks,
Inki Dae

2013/3/12 Alexandru Gheorghiu <[email protected]>:
> Replaced calls to kzalloc followed by memcpy with call to kmemdup.
> Patch found using coccinelle.
>
> Signed-off-by: Alexandru Gheorghiu <[email protected]>
> ---
> drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index 13ccbd4..9504b0c 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -117,13 +117,12 @@ static struct edid *vidi_get_edid(struct device *dev,
> }
>
> edid_len = (1 + ctx->raw_edid->extensions) * EDID_LENGTH;
> - edid = kzalloc(edid_len, GFP_KERNEL);
> + edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL);
> if (!edid) {
> DRM_DEBUG_KMS("failed to allocate edid\n");
> return ERR_PTR(-ENOMEM);
> }
>
> - memcpy(edid, ctx->raw_edid, edid_len);
> return edid;
> }
>
> @@ -563,12 +562,11 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
> return -EINVAL;
> }
> edid_len = (1 + raw_edid->extensions) * EDID_LENGTH;
> - ctx->raw_edid = kzalloc(edid_len, GFP_KERNEL);
> + ctx->raw_edid = kmemdup(raw_edid, edid_len, GFP_KERNEL);
> if (!ctx->raw_edid) {
> DRM_DEBUG_KMS("failed to allocate raw_edid.\n");
> return -ENOMEM;
> }
> - memcpy(ctx->raw_edid, raw_edid, edid_len);
> } else {
> /*
> * with connection = 0, free raw_edid
> --
> 1.7.9.5
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/dri-devel