On Wed, Jul 3, 2019 at 7:30 PM Fuqian Huang <huangfq.daxian@xxxxxxxxx> wrote: > > kmemdup is introduced to duplicate a region of memory in a neat way. > Rather than kmalloc/kzalloc + memcpy, which the programmer needs to > write the size twice (sometimes lead to mistakes), kmemdup improves > readability, leads to smaller code and also reduce the chances of mistakes. > Suggestion to use kmemdup rather than using kmalloc/kzalloc + memcpy. > Pushed to my review and testing queue, thanks! > Signed-off-by: Fuqian Huang <huangfq.daxian@xxxxxxxxx> > --- > Changes in v2: > - Fix a typo in commit message (memset -> memcpy) > - Split into two patches. > > drivers/platform/x86/asus-wmi.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c > index 9b18a184e0aa..472b317ad814 100644 > --- a/drivers/platform/x86/asus-wmi.c > +++ b/drivers/platform/x86/asus-wmi.c > @@ -260,12 +260,11 @@ static int asus_wmi_evaluate_method_agfn(const struct acpi_buffer args) > * Copy to dma capable address otherwise memory corruption occurs as > * bios has to be able to access it. > */ > - input.pointer = kzalloc(args.length, GFP_DMA | GFP_KERNEL); > + input.pointer = kmemdup(args.pointer, args.length, GFP_DMA | GFP_KERNEL); > input.length = args.length; > if (!input.pointer) > return -ENOMEM; > phys_addr = virt_to_phys(input.pointer); > - memcpy(input.pointer, args.pointer, args.length); > > status = asus_wmi_evaluate_method(ASUS_WMI_METHODID_AGFN, > phys_addr, 0, &retval); > -- > 2.11.0 > -- With Best Regards, Andy Shevchenko