From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751980AbdJZIAu (ORCPT ); Thu, 26 Oct 2017 04:00:50 -0400 Received: from mout.web.de ([212.227.17.12]:50470 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751027AbdJZIAr (ORCPT ); Thu, 26 Oct 2017 04:00:47 -0400 To: linux-iio@vger.kernel.org, Hartmut Knaack , Jacek Anaszewski , Jonathan Cameron , Lars-Peter Clausen , Peter Meerwald-Stadler Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Subject: [PATCH] iio/light/gp2ap020a00f: Use common error handling code in gp2ap020a00f_adjust_lux_mode() Message-ID: <06da0424-1ec9-209e-a433-48288c49132b@users.sourceforge.net> Date: Thu, 26 Oct 2017 10:00:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:1u4kwTPv312bmHQ9BVWLmTFuty+zxcmD4HbuLcFqO97fnZ9U5MD dDxD04MfiEI2Wu9tn/l2CPDJsGAdO7p8QCQc/fNMdDb6WGPrhaa7c+iPdOvqlLlYzv26gV4 A84JyOJF1IUIpLKB2y4O3IAJxdyKExnqOoDQDBJJaltEuwbvHQ/k7qVjeDWxMoPUpHIQd1z uw3zafQ22dwV/500O1BAw== X-UI-Out-Filterresults: notjunk:1;V01:K0:6zLyJxumgMU=:GgV9WPVThlT+BHjdHYTyEi buYvX0l9HmRGAoQQK7xTT1e4Nn9n9s0u9GIgRDjSulpdIT9uMmk1u+K6p7HXe/JotHWx5q0iD rUnygWXzehBTGvx+fZklKN3y4bt8lfnN+PbEg2xB/CLsUCvmvyGRRai5uLQtFmlR8DtPYrAur 2ygbg0wiOEbZrhL75BdRioKnXudSlJ8+GcPTldnbmnMe+YO0D6Loywrzk89TKKb0YI1wfdGgU TlQXo664G58BiA/PULJVXOvmgqkx7T7PfgN/tebCisvYToVVc/ggl4Y3QNVYhkQX4YyYaYh8m Psdxw82O1HvdwO2LdGVnxj3pTKJ32AxeWyq4/G/1chsCxPDvAJHAo0GMX8dYPjANjLKqFoHTO W8zxqUxqRlg6wfeqmb2Iw2/wY+msgWFcwV9kbzHexDF8Rp1OJR0dgTK+ru4KyBOlHD8QBmIOX aQA7KsOjSegqec5deU+hGNL3Ok6gfDQ7nMnWZL06umU0A38QhFILmTWFJgla1XRDGAyo5QSv5 aTmpc+P9AVvyVjjKcrOjsMxKNZwldX39a6hot3FXTyV4jfb+ZjlfviIpBFY+a1M6M4AhN4cE5 T+++jdAjux2YcO+wA4ZdNlV0dvx53N7JnV6/37YlhmuTd6R/3Ma3P77rX8oc5d/AHN7k3vIH8 BQki2npj7hEibrMIkpzJtG9GXzvgJ0tSaXLQgdee7B1lu9hQdFUnRvWnIlWUGJmQRlsXy0hTc nsRxl67pZxKDHDOfWzYLgGbDrvykXessZRCTXi1Rs89kve3s1zn9uyNFaEssPG8zcy1iLXC1v gs4IpK8qYzW7uUZvLXrosS+b4O38bYnGhpSqaYwD95AlbnY6FU= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Thu, 26 Oct 2017 09:50:21 +0200 * Add jump targets so that two error messages are stored only once at the end of this function implementation. * Adjust condition checks. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/iio/light/gp2ap020a00f.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/drivers/iio/light/gp2ap020a00f.c b/drivers/iio/light/gp2ap020a00f.c index 44b13fbcd093..ae29bce660ac 100644 --- a/drivers/iio/light/gp2ap020a00f.c +++ b/drivers/iio/light/gp2ap020a00f.c @@ -741,19 +741,13 @@ static bool gp2ap020a00f_adjust_lux_mode(struct gp2ap020a00f_data *data, */ err = gp2ap020a00f_write_event_threshold(data, GP2AP020A00F_THRESH_TH, false); - if (err < 0) { - dev_err(&data->client->dev, - "Clearing als threshold register failed.\n"); - return false; - } + if (err) + goto report_clearing_failure; err = gp2ap020a00f_write_event_threshold(data, GP2AP020A00F_THRESH_TL, false); - if (err < 0) { - dev_err(&data->client->dev, - "Clearing als threshold register failed.\n"); - return false; - } + if (err) + goto report_clearing_failure; /* Change lux mode */ err = regmap_update_bits(data->regmap, @@ -793,27 +787,30 @@ static bool gp2ap020a00f_adjust_lux_mode(struct gp2ap020a00f_data *data, if (test_bit(GP2AP020A00F_FLAG_ALS_RISING_EV, &data->flags)) { err = gp2ap020a00f_write_event_threshold(data, GP2AP020A00F_THRESH_TH, true); - if (err < 0) { - dev_err(&data->client->dev, - "Adjusting als threshold value failed.\n"); - return false; - } + if (err) + goto report_adjustment_failure; } if (test_bit(GP2AP020A00F_FLAG_ALS_FALLING_EV, &data->flags)) { err = gp2ap020a00f_write_event_threshold(data, GP2AP020A00F_THRESH_TL, true); - if (err < 0) { - dev_err(&data->client->dev, - "Adjusting als threshold value failed.\n"); - return false; - } + if (err) + goto report_adjustment_failure; } return true; } return false; + +report_clearing_failure: + dev_err(&data->client->dev, + "Clearing als threshold register failed.\n"); + return false; + +report_adjustment_failure: + dev_err(&data->client->dev, "Adjusting als threshold value failed.\n"); + return false; } static void gp2ap020a00f_output_to_lux(struct gp2ap020a00f_data *data, -- 2.14.3