From patchwork Thu Feb 13 05:27:47 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 3642711 Return-Path: X-Original-To: patchwork-linux-input@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 40EFFBF13A for ; Thu, 13 Feb 2014 05:32:00 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 58C3B20158 for ; Thu, 13 Feb 2014 05:31:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7945420145 for ; Thu, 13 Feb 2014 05:31:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751385AbaBMF2G (ORCPT ); Thu, 13 Feb 2014 00:28:06 -0500 Received: from mail-pd0-f179.google.com ([209.85.192.179]:57063 "EHLO mail-pd0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751831AbaBMF2E (ORCPT ); Thu, 13 Feb 2014 00:28:04 -0500 Received: by mail-pd0-f179.google.com with SMTP id fp1so9590334pdb.24 for ; Wed, 12 Feb 2014 21:28:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=yPj+Rj8yeWdnRUQLmq2d8BVMkmXVLZwjlLdOU5dBovA=; b=Td8x2P5IQME2tzZorI78UtDZ6FXQX9341mvr5fuCFC7fbv1kp7QaHqStJXFATYnFbl uOJNuv8mquvy/54z75JaEcdn8hBDfvC8YVvcq0gJBfaZTDu8mIpEWqcmNYqNdYTKYliI vVg7pF2tUvIgtrKEOoii2UhWdSmE0EG2VVrooj45J1533vJqYmYYAR+D1/RQcA+L2mcJ QZUwX3C4ecrDxx/K6atkNZyzD8yMKNMrVkpiu8vxVfEIUdbvRZ4mR993FlXmo3X6BwHR 61g9DKL8aD69Tt+7XEbV93z04VRFo0/8BB2KfdeimDq587DbAmpPyg5UQpcUyy2Ll8R/ mRlQ== X-Received: by 10.66.252.135 with SMTP id zs7mr44536081pac.13.1392269283763; Wed, 12 Feb 2014 21:28:03 -0800 (PST) Received: from mailhub.coreip.homeip.net (c-67-188-112-76.hsd1.ca.comcast.net. [67.188.112.76]) by mx.google.com with ESMTPSA id bz4sm2180550pbb.12.2014.02.12.21.28.00 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 12 Feb 2014 21:28:02 -0800 (PST) From: Dmitry Torokhov To: Christopher Heiny Cc: Andrew Duggan , Vincent Huang , Vivian Ly , Daniel Rosenberg , Linus Walleij , Benjamin Tissoires , Courtney Cavin , Linux Input , Linux Kernel Subject: [PATCH 01/11] Input: synaptics-rmi4 - do not kfree() managed memory in F01 Date: Wed, 12 Feb 2014 21:27:47 -0800 Message-Id: <1392269277-16391-1-git-send-email-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 1.8.5.3 Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Data that is allocated with devm_kzalloc() should not be freed with kfree(). In fact, we should rely on the fact that memory is managed and let devres core free it for us. Reported-by: Courtney Cavin Signed-off-by: Dmitry Torokhov Signed-off-by: Christopher Heiny --- drivers/input/rmi4/rmi_f01.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/input/rmi4/rmi_f01.c b/drivers/input/rmi4/rmi_f01.c index 381ad60..92b90d1 100644 --- a/drivers/input/rmi4/rmi_f01.c +++ b/drivers/input/rmi4/rmi_f01.c @@ -272,7 +272,7 @@ static int rmi_f01_initialize(struct rmi_function *fn) if (error < 0) { dev_err(&fn->dev, "Failed to read F01 control interrupt enable register.\n"); - goto error_exit; + return error; } ctrl_base_addr += data->num_of_irq_regs; @@ -307,14 +307,14 @@ static int rmi_f01_initialize(struct rmi_function *fn) data->device_control.doze_interval); if (error < 0) { dev_err(&fn->dev, "Failed to configure F01 doze interval register.\n"); - goto error_exit; + return error; } } else { error = rmi_read(rmi_dev, data->doze_interval_addr, &data->device_control.doze_interval); if (error < 0) { dev_err(&fn->dev, "Failed to read F01 doze interval register.\n"); - goto error_exit; + return error; } } @@ -328,14 +328,14 @@ static int rmi_f01_initialize(struct rmi_function *fn) data->device_control.wakeup_threshold); if (error < 0) { dev_err(&fn->dev, "Failed to configure F01 wakeup threshold register.\n"); - goto error_exit; + return error; } } else { error = rmi_read(rmi_dev, data->wakeup_threshold_addr, &data->device_control.wakeup_threshold); if (error < 0) { dev_err(&fn->dev, "Failed to read F01 wakeup threshold register.\n"); - goto error_exit; + return error; } } } @@ -351,14 +351,14 @@ static int rmi_f01_initialize(struct rmi_function *fn) data->device_control.doze_holdoff); if (error < 0) { dev_err(&fn->dev, "Failed to configure F01 doze holdoff register.\n"); - goto error_exit; + return error; } } else { error = rmi_read(rmi_dev, data->doze_holdoff_addr, &data->device_control.doze_holdoff); if (error < 0) { dev_err(&fn->dev, "Failed to read F01 doze holdoff register.\n"); - goto error_exit; + return error; } } } @@ -367,22 +367,17 @@ static int rmi_f01_initialize(struct rmi_function *fn) &data->device_status, sizeof(data->device_status)); if (error < 0) { dev_err(&fn->dev, "Failed to read device status.\n"); - goto error_exit; + return error; } if (RMI_F01_STATUS_UNCONFIGURED(data->device_status)) { dev_err(&fn->dev, "Device was reset during configuration process, status: %#02x!\n", RMI_F01_STATUS_CODE(data->device_status)); - error = -EINVAL; - goto error_exit; + return -EINVAL; } return 0; - - error_exit: - kfree(data); - return error; } static int rmi_f01_config(struct rmi_function *fn)