Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp11172890ybi; Thu, 25 Jul 2019 11:14:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqypHv8gm8ovm1qIRFui0EYaRGPnyxjP93cOllGIYnyhiMie6f9vK3T8qiw+wBqdvU3zRi3u X-Received: by 2002:aa7:9afc:: with SMTP id y28mr17641346pfp.252.1564078450822; Thu, 25 Jul 2019 11:14:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564078450; cv=none; d=google.com; s=arc-20160816; b=knTv0IEeN5xwfBSneWt0vw7tXXW0GUFKDCM8Ud/A4233uobuB8L3tTTOD2gdS/y1tt oOB36OcRTq289Vxln79Z7ikccgaPBJ0EQIzbguEUD2bSsvPTLpEebU304libY0qZg75P mzb8fyUPDu+W4lEFJRcuCm0fRE/L9JSyWqRHflkIL4MBZDy58xyWqUrAaYUDmVqj/xx7 yHcxLhHYY2z9Y70BeJb6IMGQSyfDwQksdqZJrnraWS1H0blIXYYzL6t4Ll1aGEMUwbGU x6tYLJyYSke8cnACgwacRkbLYJwH5J4qC6dMExjPXFgm9pOe90svyo4YocQt/AMy2Z84 qGMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=F1UAd0NAfu4/AD+pKmFdZqYRIwZPuAgiz507KIuTUu0=; b=g5zs0Bw+ikkfZzHo54HgBdpSFQ6aqa5fJswwJyAeE4PwuJt6p+aYmIBobBkZrjZCjb cyevK61SdXG/PNpXVc3JmFBdjs2AGT/7/To4J4UXb5zDjA+wXWipxnHS0W6sTl2L41ve 4lynqxozXm1CA6CPPCP22oxqsMXXUE6Kyal8Jg5+4XE2KDs11SQC8qM0Ob0P9LSPdL8Z /0c2iorL2F8q+7n1kYDAuDCJOi+5K6D8rPucYcC8cLPyJkHWE0BgCQrQ7FDMykL0rLiw P/u5hjEwpmzzMBEL8CrDS0b01aCThU38Cssw22186Q2hgHgUsOT46JXdzStVVgt2fQm2 9JkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tHgnHRXU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w18si17731356pjn.74.2019.07.25.11.13.55; Thu, 25 Jul 2019 11:14:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tHgnHRXU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391213AbfGYRoL (ORCPT + 99 others); Thu, 25 Jul 2019 13:44:11 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:37641 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389004AbfGYRoL (ORCPT ); Thu, 25 Jul 2019 13:44:11 -0400 Received: by mail-pf1-f195.google.com with SMTP id 19so23114248pfa.4; Thu, 25 Jul 2019 10:44:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=F1UAd0NAfu4/AD+pKmFdZqYRIwZPuAgiz507KIuTUu0=; b=tHgnHRXUiGTMjTcR2hueEd2TixdbiBau3BS+FsHeIeUAsFdtkvzmE8Zbg0MU5p+YlW LrItiadPbiltPNWAWxgKjcganHhE3rbfLcyBWptNErX5LatSVDq1t4pr2Ktg45DJb7kI o8ayjt5orHffZniU0HNV4FRuO2RVebowXaMotoZ8nV0nEbA5Nb7pVcimmmL1tyPMnVCt lH0+HjIt9GY38fGsIxlRWPBo5lpkFTyTq5SNBnlBdw/s0f1K0A03PCKONNObRGC/BUWh c7hFOWGVz6YELr3KoYVzTFsDh558VPKBr37g6AA1ELK9VOQVwvoqlEEFiNG6JN6KTBCQ AiQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=F1UAd0NAfu4/AD+pKmFdZqYRIwZPuAgiz507KIuTUu0=; b=NPkg3gMa0hxeAKznXB+aYKzyXY/bwjuYIzhgih8SBmrjmwRVCrPRdQhnXSojSaO7aK 73G70BSVG01h4pzLQhkv/MbrLCqvJE0OPWahkKOXkopYQEUTNc0ZNwkXPLmALhOrFjKk gBpJOO5kPqGNHjwgWh7c+xT61OI3BJd0qhwpTFMcX7tl5xbWGnB6a5ZO+lmHT8ce+so+ Kb144oDllzk9O/3H4hzoDcakubtzH3I13gq6tCWKR7DxhhiZdmFGw20zNctYx0YHj3bo Onhzo/bYjPwvzTX5P2nBmtKO0m4WSqioY+Eud6YxLKCkMJYXgQoOFu+/MiI89f2uWpDv hsow== X-Gm-Message-State: APjAAAXvVORci9TsAey0GZMulV3D7jVeG/aA8oXgvVKCohjng3Olxzso WnACDXfsRuiMhHc7z4HK/A03WQ9C8sY0LGLHSNY= X-Received: by 2002:a62:4e86:: with SMTP id c128mr17803119pfb.64.1564076650526; Thu, 25 Jul 2019 10:44:10 -0700 (PDT) MIME-Version: 1.0 References: <20190703163000.315-1-huangfq.daxian@gmail.com> In-Reply-To: <20190703163000.315-1-huangfq.daxian@gmail.com> From: Andy Shevchenko Date: Thu, 25 Jul 2019 20:43:59 +0300 Message-ID: Subject: Re: [PATCH v2 21/35] platform/x86/thinkpad: Use kmemdup rather than duplicating its implementation To: Fuqian Huang Cc: Henrique de Moraes Holschuh , Darren Hart , Andy Shevchenko , Thinkpad-acpi devel ML , Platform Driver , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 3, 2019 at 7:30 PM Fuqian Huang 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 > --- > Changes in v2: > - Fix a typo in commit message (memset -> memcpy) > > drivers/platform/x86/thinkpad_acpi.c | 17 +++++++---------- > 1 file changed, 7 insertions(+), 10 deletions(-) > > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c > index 7bde4640ef34..d379bdf98a0f 100644 > --- a/drivers/platform/x86/thinkpad_acpi.c > +++ b/drivers/platform/x86/thinkpad_acpi.c > @@ -3647,22 +3647,19 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) > goto err_exit; > > /* Set up key map */ > - hotkey_keycode_map = kmalloc(TPACPI_HOTKEY_MAP_SIZE, > - GFP_KERNEL); > - if (!hotkey_keycode_map) { > - pr_err("failed to allocate memory for key map\n"); > - res = -ENOMEM; > - goto err_exit; > - } > - > keymap_id = tpacpi_check_quirks(tpacpi_keymap_qtable, > ARRAY_SIZE(tpacpi_keymap_qtable)); > BUG_ON(keymap_id >= ARRAY_SIZE(tpacpi_keymaps)); > dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, > "using keymap number %lu\n", keymap_id); > > - memcpy(hotkey_keycode_map, &tpacpi_keymaps[keymap_id], > - TPACPI_HOTKEY_MAP_SIZE); > + hotkey_keycode_map = kmemdup(&tpacpi_keymaps[keymap_id], > + TPACPI_HOTKEY_MAP_SIZE, GFP_KERNEL); > + if (!hotkey_keycode_map) { > + pr_err("failed to allocate memory for key map\n"); > + res = -ENOMEM; > + goto err_exit; > + } > > input_set_capability(tpacpi_inputdev, EV_MSC, MSC_SCAN); > tpacpi_inputdev->keycodesize = TPACPI_HOTKEY_MAP_TYPESIZE; > -- > 2.11.0 > -- With Best Regards, Andy Shevchenko