From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934082AbcAYSXW (ORCPT ); Mon, 25 Jan 2016 13:23:22 -0500 Received: from mout.web.de ([212.227.15.3]:50591 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932986AbcAYSXS (ORCPT ); Mon, 25 Jan 2016 13:23:18 -0500 Subject: Re: [PATCH] [media] xc5000: Faster result reporting in xc_load_fw_and_init_tuner() To: Mauro Carvalho Chehab References: <566ABCD9.1060404@users.sourceforge.net> <56818B7B.8040801@users.sourceforge.net> <20160125150654.7ada12ac@recife.lan> Cc: linux-media@vger.kernel.org, LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <56A6680B.9050200@users.sourceforge.net> Date: Mon, 25 Jan 2016 19:23:07 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160125150654.7ada12ac@recife.lan> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:CMjrQvOl/GfRtDUwgIwS6SWXZY8qUEpaqFnaXLsxxHFjfNpLI76 WEGIquT4Cwa40WTr7sqxdjHycS1o6888LsOVYpaDwVKDM4/uieY7x9n1dqptUW1yQsz7Frz 8eNQWdvDs0og0mpxP2ea5uMB806OXhkJ7n5rxJ6sjoNFuL5B7oQ2vTgBK9JR8+85K7ZvvDt 4QQ5HyESREApxe5X6X1XQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:XopZ7ha9/Hs=:K1LD0csfFsZNLrHVqgIZ0T WUeaqf3JG9zWqyebbN+utC0zgpFgH3oDhR/ZOwfl6BEd8r5uOgmWLupIlOnn20xlfxEj2SPav /kcE6oagDfQz1qB8PRPGS5bImqA7mzu1f8eodRVbdoTXxYvxhft8y+KESvF/eo2UfXMBlEFrm uuGhBS0ItDf5H5jnLmiw288XvGnGSFDBBr6qu4IKzg/nLmZUGYcx1/8khMW0ByReoVhS5Wyj6 1PZkQF3X3b/RBajpc8xrLWtZmOivTbxVpEoivRgyyMEwLPEpfGJaXTlpOzBgjyZOi0RAwVqVT 7LBqF2wZyY04eOpzpSeJ6xSvzFk8RAi1a+OjteBnnpFJlzsbAyze9ObuBpAa9tOPZWds0M4GL fZ3e0s/zIbZviyPES5fSWbcwKPTP/rtD+QfEORIdhiYX14RsomoBiCP2Fdi1SbJeHaclQ7DvA k4eQ7VcZslYpdB2GvdJRpzAwOf5Y/sjOzUmEh6hgNvQwynUwfbAlr3imkLul10t0WHpB8W1SL HJtsPPKxyV6IABNP8gg4C8eJhPEtAFHtEGnX0ULC5jboYhZtflaMmrIMcijN1gfWxtDXU/DsH poT2H5AKMu1pA33K5rHwQIz+4NkkR2mLHYLr/zOAqWto+1RBj4KXLtI8U+L6DD/7c0UZH0WXf YHrMY6To4O/s9wuv9OXL0aC2QCj7wkZyUECs9CvDf8PTjSUKHgo+hx2icFIYDEU0SJ+yJX2Ka 4zH4TigHxssD1YZWWklpYBaIFLTfOoSBZGZgjg/1EbmIoGluAqtxJStUM6CJdSV5pORKlR40/ REGcfdj Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >> This issue was detected by using the Coccinelle software. >> >> Split the previous if statement at the end so that each final log statement >> will eventually be performed by a direct jump to these labels. >> * report_failure >> * report_success >> >> A check repetition can be excluded for the variable "ret" at the end then. >> >> >> Apply also two recommendations from the script "checkpatch.pl". >> >> Signed-off-by: Markus Elfring >> --- >> drivers/media/tuners/xc5000.c | 16 +++++++--------- >> 1 file changed, 7 insertions(+), 9 deletions(-) >> >> diff --git a/drivers/media/tuners/xc5000.c b/drivers/media/tuners/xc5000.c >> index e6e5e90..1360677 100644 >> --- a/drivers/media/tuners/xc5000.c >> +++ b/drivers/media/tuners/xc5000.c >> @@ -1166,7 +1166,7 @@ static int xc_load_fw_and_init_tuner(struct dvb_frontend *fe, int force) >> >> ret = xc5000_fwupload(fe, desired_fw, fw); >> if (ret != 0) >> - goto err; >> + goto report_failure; >> >> msleep(20); >> >> @@ -1229,18 +1229,16 @@ static int xc_load_fw_and_init_tuner(struct dvb_frontend *fe, int force) >> /* Default to "CABLE" mode */ >> ret = xc_write_reg(priv, XREG_SIGNALSOURCE, XC_RF_MODE_CABLE); >> if (!ret) >> - break; >> + goto report_success; >> printk(KERN_ERR "xc5000: can't set to cable mode."); > > It sounds worth to avoid adding a goto here. Are you interested in a bit of software optimisation for the implementation of the function "xc_load_fw_and_init_tuner"? >> } >> >> -err: >> - if (!ret) >> - printk(KERN_INFO "xc5000: Firmware %s loaded and running.\n", >> - desired_fw->name); >> - else >> - printk(KERN_CONT " - too many retries. Giving up\n"); >> - >> +report_failure: >> + pr_cont(" - too many retries. Giving up\n"); >> return ret; >> +report_success: >> + pr_info("xc5000: Firmware %s loaded and running.\n", desired_fw->name); >> + return 0; >> } >> >> static void xc5000_do_timer_sleep(struct work_struct *timer_sleep) Is the proposed source code restructuring interesting? Regards, Markus