aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2010-05-15 17:22:18 -0400
committerMatthew Garrett <mjg@redhat.com>2010-05-20 09:26:13 -0400
commit2c6719a3ef2f7da59a622ba1176ad41d553f8f43 (patch)
treed685f2939ff90182458fd5173df0f7871f93cb81 /drivers/platform
parent6c75dd0f965b7b3480d0e0e9b8d9747988dfe815 (diff)
drivers/platform/x86: Use kmemdup
Use kmemdup when some other buffer is immediately copied into the allocated region. A simplified version of the semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression from,to,size,flag; statement S; @@ - to = \(kmalloc\|kzalloc\)(size,flag); + to = kmemdup(from,size,flag); if (to==NULL || ...) S - memcpy(to, from, size); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/wmi.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 39ec5b6c2e3a..17df134a6f03 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -756,12 +756,10 @@ static __init acpi_status parse_wdg(acpi_handle handle)
756 756
757 total = obj->buffer.length / sizeof(struct guid_block); 757 total = obj->buffer.length / sizeof(struct guid_block);
758 758
759 gblock = kzalloc(obj->buffer.length, GFP_KERNEL); 759 gblock = kmemdup(obj->buffer.pointer, obj->buffer.length, GFP_KERNEL);
760 if (!gblock) 760 if (!gblock)
761 return AE_NO_MEMORY; 761 return AE_NO_MEMORY;
762 762
763 memcpy(gblock, obj->buffer.pointer, obj->buffer.length);
764
765 for (i = 0; i < total; i++) { 763 for (i = 0; i < total; i++) {
766 /* 764 /*
767 Some WMI devices, like those for nVidia hooks, have a 765 Some WMI devices, like those for nVidia hooks, have a