From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932850AbdCaJQL (ORCPT ); Fri, 31 Mar 2017 05:16:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39542 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932906AbdCaJPw (ORCPT ); Fri, 31 Mar 2017 05:15:52 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3E88B7E9CB Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=benjamin.tissoires@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3E88B7E9CB Date: Fri, 31 Mar 2017 11:15:46 +0200 From: Benjamin Tissoires To: Dmitry Torokhov Cc: Andrew Duggan , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Nick Dyer Subject: Re: [PATCH 1/4] Input: synaptics-rmi4 - fix handling failures from rmi_enable_sensor Message-ID: <20170331091546.GI22683@mail.corp.redhat.com> References: <20170325060050.39867-1-dmitry.torokhov@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20170325060050.39867-1-dmitry.torokhov@gmail.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 31 Mar 2017 09:15:51 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mar 24 2017 or thereabouts, Dmitry Torokhov wrote: > If rmi_enable_sensor() fails in rmi_driver_probe(), we should not return > immediately, but disable IRQs and tear down function list. > > Signed-off-by: Dmitry Torokhov > --- Reviewed-by: Benjamin Tissoires Cheers, Benjamin > drivers/input/rmi4/rmi_driver.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c > index d9cfe4ec93fa..daba87c7e707 100644 > --- a/drivers/input/rmi4/rmi_driver.c > +++ b/drivers/input/rmi4/rmi_driver.c > @@ -1229,16 +1229,21 @@ static int rmi_driver_probe(struct device *dev) > if (retval < 0) > goto err_destroy_functions; > > - if (data->f01_container->dev.driver) > + if (data->f01_container->dev.driver) { > /* Driver already bound, so enable ATTN now. */ > - return rmi_enable_sensor(rmi_dev); > + retval = rmi_enable_sensor(rmi_dev); > + if (retval) > + goto err_disable_irq; > + } > > return 0; > > +err_disable_irq: > + rmi_disable_irq(rmi_dev, false); > err_destroy_functions: > rmi_free_function_list(rmi_dev); > err: > - return retval < 0 ? retval : 0; > + return retval; > } > > static struct rmi_driver rmi_physical_driver = { > -- > 2.12.1.578.ge9c3154ca4-goog >