Replaced calls to kmalloc followed by memcpy with a single call to kmemdup. This patch was found using coccinelle.
Signed-off-by: Alexandru Gheorghiu gheorghiuandru@gmail.com --- drivers/gpu/drm/i915/intel_dp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index f61cb79..a3fdd65 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -2335,11 +2335,10 @@ intel_dp_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) return NULL;
size = (intel_connector->edid->extensions + 1) * EDID_LENGTH; - edid = kmalloc(size, GFP_KERNEL); + edid = kmemdup(intel_connector->edid, size, GFP_KERNEL); if (!edid) return NULL;
- memcpy(edid, intel_connector->edid, size); return edid; }
On Mon, Mar 11, 2013 at 09:30:40PM +0200, Alexandru Gheorghiu wrote:
Replaced calls to kmalloc followed by memcpy with a single call to kmemdup. This patch was found using coccinelle.
Signed-off-by: Alexandru Gheorghiu gheorghiuandru@gmail.com
drivers/gpu/drm/i915/intel_dp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index f61cb79..a3fdd65 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -2335,11 +2335,10 @@ intel_dp_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) return NULL;
size = (intel_connector->edid->extensions + 1) * EDID_LENGTH;
edid = kmalloc(size, GFP_KERNEL);
if (!edid) return NULL;edid = kmemdup(intel_connector->edid, size, GFP_KERNEL);
return edid; }memcpy(edid, intel_connector->edid, size);
With this change, the conditional no longer makes sense; this should just "return kmemdup(...);".
That suggests an obvious further cleanup that coccinelle could easily handle:
if (!foo) return NULL; return foo;
should become just "return foo;". And you might then want to check for variables used *only* to capture a return value and immediately returned, and eliminate them.
- Josh Triplett
You are right. I shall resend :)
Thanks!
On Mon, Mar 11, 2013 at 10:25 PM, Josh Triplett josh@joshtriplett.orgwrote:
On Mon, Mar 11, 2013 at 09:30:40PM +0200, Alexandru Gheorghiu wrote:
Replaced calls to kmalloc followed by memcpy with a single call to
kmemdup.
This patch was found using coccinelle.
Signed-off-by: Alexandru Gheorghiu gheorghiuandru@gmail.com
drivers/gpu/drm/i915/intel_dp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c
b/drivers/gpu/drm/i915/intel_dp.c
index f61cb79..a3fdd65 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -2335,11 +2335,10 @@ intel_dp_get_edid(struct drm_connector
*connector, struct i2c_adapter *adapter)
return NULL; size = (intel_connector->edid->extensions + 1) *
EDID_LENGTH;
edid = kmalloc(size, GFP_KERNEL);
edid = kmemdup(intel_connector->edid, size, GFP_KERNEL); if (!edid) return NULL;
memcpy(edid, intel_connector->edid, size); return edid; }
With this change, the conditional no longer makes sense; this should just "return kmemdup(...);".
That suggests an obvious further cleanup that coccinelle could easily handle:
if (!foo) return NULL; return foo;
should become just "return foo;". And you might then want to check for variables used *only* to capture a return value and immediately returned, and eliminate them.
- Josh Triplett
dri-devel@lists.freedesktop.org