Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754536AbcJOQnK (ORCPT ); Sat, 15 Oct 2016 12:43:10 -0400 Received: from mout.web.de ([212.227.15.3]:56335 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751488AbcJOQnD (ORCPT ); Sat, 15 Oct 2016 12:43:03 -0400 Subject: Re: [PATCH 4/5] [media] winbond-cir: One variable and its check less in wbcir_shutdown() after error detection To: Sean Young References: <566ABCD9.1060404@users.sourceforge.net> <1d7d6a2c-0f1e-3434-9023-9eab25bb913f@users.sourceforge.net> <84757ae3-24d2-cf9b-2217-fd9793b86078@users.sourceforge.net> <20161015132956.GA3393@gofer.mess.org> Cc: linux-media@vger.kernel.org, =?UTF-8?Q?David_H=c3=a4rdeman?= , Mauro Carvalho Chehab , LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <7fe65702-ac76-39f2-edea-eba007a3ee96@users.sourceforge.net> Date: Sat, 15 Oct 2016 18:42:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20161015132956.GA3393@gofer.mess.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:ZU2c/SydM2HMVQ61nGF3nsn3F4iEWFiD3JWVUzASoiwGVesE8Ws AneA/F3sKHsYCVk9Cv7rb7rmRxqBv0/ZZZmaK7K3vnxRgHpOMcRTA2oMNxuMNlggJ3XYSPE i4s8naDoLMo6q/S5RZSIJtQFpy1M/K8TG8vakKOMPrIiszy3nfVQPfEhhJzDXRkGALQZ4Ae 5bFWx8dcGmttNdeCqbF1w== X-UI-Out-Filterresults: notjunk:1;V01:K0:2KnnCt1uNSg=:Tt0uzDB+FnpEOVyFnX0d25 pjdZ0zujXaTjZsxwy0diXiCFF7ONoh+FCjNhph3fKJfgDNfDBVtHF3sw0iJYbhyZgtyJpw+F4 194zOcrGbXTRPo8uP6kVSldLQc4jqK377AVz5R+x1BtJpNuXsZe+6uFO9/zboOoCbAOZJ7xK7 v6F+dG3AyChusZWmcW4H9NB82NwhRjcfe1U+8Tvbi2AVbpmVbQxOXIBbBat5Uv/cQie8vAsap XZRYMAXgyh+lb7XItScdlmPZGLlkv96HIXUfdD9Wawt1J7FsPg+Z9TQTRF76eR6l7Sp9HpYmF GJH/b2BE4uyjtpmGdLUEq3zQh29iWzMj1AfpkS27CtmHUb1/AGyOfe1uKehCdNTunku5Gv7Wt bcFAeX9LmgWwxyDYmnM6W1VPdipVe+b1/EOc5CXuT58Rb6EizLkGDYRDw+kN/5vO0avyZpMkO 026dyKgD7Q5hF1fX+TrI4+fdxWU7L/oyq35CtgIQPCJFHsc7aaYyFaAF5c7rC5wO3Y4I++5Q9 km5RkCNO3IQt4IeTNZWAM+rON2P2zxPnQuRScRvort46naEzfGKaii/jtKGSwWHvneK2aYKr1 7nCD+Q2QNbcYrN/Hhz2dTAW4ANqJFG/djENRlSG1muOJyQQoqvw5zuUMdYTDjp3LXI4or63fC TD1RxWjQ4vV4NoXS4bMjUpX9Y4z5wBUjREac92SfZgfhIbs9t6Go/0WFciJlOBWWIUJLevQhY oEP6IFVpIfm2eEEYqJIMn90g/a7pjBnbWZmb1jzkHtRUGbCv97e2mLu23WEEbKcIM+fJATY5k 8bkDbEX Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1094 Lines: 30 >> + /* Set CEIR_EN */ >> + wbcir_set_bits(data->wbase + WBCIR_REG_WCEIR_CTL, 0x01, 0x01); >> +set_irqmask: >> /* >> * ACPI will set the HW disable bit for SP3 which means that the >> * output signals are left in an undefined state which may cause >> @@ -876,6 +858,14 @@ wbcir_shutdown(struct pnp_dev *device) >> */ >> wbcir_set_irqmask(data, WBCIR_IRQ_NONE); >> disable_irq(data->irq); >> + return; >> +clear_bits: >> + /* Clear BUFF_EN, Clear END_EN, Clear MATCH_EN */ >> + wbcir_set_bits(data->wbase + WBCIR_REG_WCEIR_EV_EN, 0x00, 0x07); >> + >> + /* Clear CEIR_EN */ >> + wbcir_set_bits(data->wbase + WBCIR_REG_WCEIR_CTL, 0x00, 0x01); >> + goto set_irqmask; > > I'm not convinced that adding a goto which goes backwards is making this > code any more readible, just so that a local variable can be dropped. Thanks for your feedback. Is such a "backward jump" usual and finally required when you would like to move a bit of common error handling code to the end without using extra local variables and a few statements should still be performed after it? Regards, Markus