From patchwork Sun Jan 3 08:50:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SF Markus Elfring X-Patchwork-Id: 562153 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail-lf0-x238.google.com (mail-lf0-x238.google.com [IPv6:2a00:1450:4010:c07::238]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id B4AFC140320 for ; Sun, 3 Jan 2016 19:50:59 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b=e8/ux5hY; dkim-atps=neutral Received: by mail-lf0-x238.google.com with SMTP id z124sf104154211lfa.0 for ; Sun, 03 Jan 2016 00:50:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :sender:list-subscribe:list-unsubscribe; bh=z3+Zu++/lP5gpPn9TDg0ZLDeKmDFlshcsBNFD0Ij0Y4=; b=e8/ux5hYl9GkyYOdH2C2F9bZDNgBZh08e085e++YpEB9tEtmYvGkAL00LHlUhiW2x+ yN92t2wOKhL3U01xp9kzWNoiz0vEsQNw6vMZgCp1As818IL8l7f69RfVWIxV9q4F1Fty GL2Jaq4nAmV+6Q+s/B79T0g+jAvnn0xGtemDoGVaGUQ9fePJJpE6kzl1WLC0j1z3OqKA G38uw6Jax4BlBCpGSLruxOMZbzazQWhdyfBtvfbHVbxbpcOGdl+x5UHZc/bxcA1n7Qkl fO1FbF005zGnoMgEepmTBcXrA+So42qomEsQKGSR3PBoCRMrhVzx7Qxr3nZCVYkgBYDH dBHw== X-Received: by 10.28.47.146 with SMTP id v140mr171589wmv.20.1451811056232; Sun, 03 Jan 2016 00:50:56 -0800 (PST) X-BeenThere: rtc-linux@googlegroups.com Received: by 10.28.46.22 with SMTP id u22ls2039369wmu.25.gmail; Sun, 03 Jan 2016 00:50:55 -0800 (PST) X-Received: by 10.194.178.67 with SMTP id cw3mr2483040wjc.6.1451811055759; Sun, 03 Jan 2016 00:50:55 -0800 (PST) Received: from mout.web.de (mout.web.de. [212.227.17.11]) by gmr-mx.google.com with ESMTPS id 202si2321677wmf.2.2016.01.03.00.50.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Jan 2016 00:50:55 -0800 (PST) Received-SPF: neutral (google.com: 212.227.17.11 is neither permitted nor denied by best guess record for domain of elfring@users.sourceforge.net) client-ip=212.227.17.11; Received: from [192.168.1.2] ([77.182.151.30]) by smtp.web.de (mrweb103) with ESMTPSA (Nemesis) id 0MGzba-1aTNss1PSE-00DmXA; Sun, 03 Jan 2016 09:50:52 +0100 Subject: [rtc-linux] [PATCH 1/8] rtc-ab-b5ze-s3: Better exception handling in abb5zes3_probe() To: rtc-linux@googlegroups.com, Alessandro Zummo , Alexandre Belloni References: <566ABCD9.1060404@users.sourceforge.net> <5688DF2D.6090204@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <5688E0E1.4020502@users.sourceforge.net> Date: Sun, 3 Jan 2016 09:50:41 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <5688DF2D.6090204@users.sourceforge.net> X-Provags-ID: V03:K0:FtJ1dPA6YZxwWvxoy3Q+kqQwV3rbtfUXudoV2SRXsKeMeGsd9lj eM5A9soTSGgYf+NwweMULbJIsZ9wRZciTz3GXdpeCCOXJ9we9TKf0P72XTiKZV4/X3ijGh9 1FzmCAk+ytXHDKUNJTni7nc8ohpf0PJZlZCtUt3WyEB2HiMcj4I87wPMdWKt5GRC+mWSgjr YEcWTSJX59kqZIqpRTIvw== X-UI-Out-Filterresults: notjunk:1; V01:K0:Z0AGJwWI/+E=:bHwULAh70jjIENg6DcOWWp PoM7w24+JT2e+L96zYPigJKARjJoSGxvfn2J3xGd8VdIC5cMyM1XcyH8bGevRUK+n7IhsJn34 rh45TsXeGfyw33hmWNzxEwouCdakxQvISLaWDxpYWM/c+9xaacW8seMJY+DGhMcizzaTqSE3f Wc2Pj6O9q5utNP/+Kki47DXhpeHxhzeMav/YCn7PI7A1I0sR0Tr4ejEEwePdwzS0nroEeilks 9OkzqTl8TeFTAh/UQnzLhb3Upp6X8dgMg/Uvwmp7Bvss82JjiuzzKa2pQodK8sMA5vFubbcy2 ZDPYtJgPUtgk4k1kbxQTi3FfyYnycPlp5zdyOzYLr3CVu9rnw2WclfxCpAqLNLEqJXUmivO3H 9+VsaQZFy6eNr6YrzFIr6anUfqIamlKDQ2Y+2zO4P+x4yXrK/6Yfz3w53Bv+xfiEUW5ics5I7 TmGhKdqyjwHBWOMaCZg562pAgvpg2+sbBC32oNuB3mZ5ej5EIOeeccFL2dFNZuBCKIQNE/f/m WwdDiQD9F2BCizieUpKzfktYulQ8fqNrkerFYdqTSNu7wEQ7aADKH+McSOArTXJDXBnZX6Dee PPhze1L264uoRbgA7sINKXNpcAy2XyticgBBTcvLkBzkQqguz3EQ1ddjJSedzBxONJkCnbRmL xuQSrAQi8SBJuNgOZdLrFiEtpTlQ6Prr+KhHCE7WOyLJDj0m4RIfBoCfCLsCj792tbM5e8UMH MS5y+fm3gY0sxUC39xCZlnBEXQc5z6e+c2LcGe2WF3JE8zzNlwZSfZI/tCITkK4+5CrlSknjA aGfrwI6 X-Original-Sender: elfring@users.sourceforge.net X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.227.17.11 is neither permitted nor denied by best guess record for domain of elfring@users.sourceforge.net) smtp.mailfrom=elfring@users.sourceforge.net Reply-To: rtc-linux@googlegroups.com Precedence: list Mailing-list: list rtc-linux@googlegroups.com; contact rtc-linux+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: rtc-linux@googlegroups.com X-Google-Group-Id: 712029733259 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , From: Markus Elfring Date: Sun, 3 Jan 2016 07:07:49 +0100 This issue was detected by using the Coccinelle software. * Return directly before the data structure element "irq" was assigned. * Drop the explicit initialisation for the variable "data" at the beginning then. * Adjust jump targets according to the Linux coding style convention. * Simplify a condition check at the end. Signed-off-by: Markus Elfring --- drivers/rtc/rtc-ab-b5ze-s3.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/rtc/rtc-ab-b5ze-s3.c b/drivers/rtc/rtc-ab-b5ze-s3.c index a319bf1..1291206 100644 --- a/drivers/rtc/rtc-ab-b5ze-s3.c +++ b/drivers/rtc/rtc-ab-b5ze-s3.c @@ -889,35 +889,31 @@ static const struct regmap_config abb5zes3_rtc_regmap_config = { static int abb5zes3_probe(struct i2c_client *client, const struct i2c_device_id *id) { - struct abb5zes3_rtc_data *data = NULL; + struct abb5zes3_rtc_data *data; struct device *dev = &client->dev; struct regmap *regmap; int ret; if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C | I2C_FUNC_SMBUS_BYTE_DATA | - I2C_FUNC_SMBUS_I2C_BLOCK)) { - ret = -ENODEV; - goto err; - } + I2C_FUNC_SMBUS_I2C_BLOCK)) + return -ENODEV; regmap = devm_regmap_init_i2c(client, &abb5zes3_rtc_regmap_config); if (IS_ERR(regmap)) { ret = PTR_ERR(regmap); dev_err(dev, "%s: regmap allocation failed: %d\n", __func__, ret); - goto err; + return ret; } ret = abb5zes3_i2c_validate_chip(regmap); if (ret) - goto err; + return ret; data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); - if (!data) { - ret = -ENOMEM; - goto err; - } + if (!data) + return -ENOMEM; mutex_init(&data->lock); data->regmap = regmap; @@ -925,7 +921,7 @@ static int abb5zes3_probe(struct i2c_client *client, ret = abb5zes3_rtc_check_setup(dev); if (ret) - goto err; + return ret; if (client->irq > 0) { ret = devm_request_threaded_irq(dev, client->irq, NULL, @@ -940,7 +936,7 @@ static int abb5zes3_probe(struct i2c_client *client, } else { dev_err(dev, "%s: irq %d unavailable (%d)\n", __func__, client->irq, ret); - goto err; + return ret; } } @@ -950,7 +946,7 @@ static int abb5zes3_probe(struct i2c_client *client, if (ret) { dev_err(dev, "%s: unable to register RTC device (%d)\n", __func__, ret); - goto err; + goto check_irq; } /* Enable battery low detection interrupt if battery not already low */ @@ -959,12 +955,12 @@ static int abb5zes3_probe(struct i2c_client *client, if (ret) { dev_err(dev, "%s: enabling battery low interrupt " "generation failed (%d)\n", __func__, ret); - goto err; + goto check_irq; } } - -err: - if (ret && data && data->irq) + return 0; +check_irq: + if (data->irq) device_init_wakeup(dev, false); return ret; }