From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Torokhov Subject: Re: [PATCH 04/26] Input: synaptics-rmi4 - prevent oopses when irq arrives while the device is not bound Date: Mon, 9 Nov 2015 15:16:10 -0800 Message-ID: <20151109231610.GF9155@dtor-ws> References: <1446766645-30350-1-git-send-email-aduggan@synaptics.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1446766645-30350-1-git-send-email-aduggan@synaptics.com> Sender: linux-kernel-owner@vger.kernel.org To: Andrew Duggan Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Tissoires , Linus Walleij , Benjamin Tissoires , Christopher Heiny , Stephen Chandler Paul List-Id: linux-input@vger.kernel.org On Thu, Nov 05, 2015 at 03:37:25PM -0800, Andrew Duggan wrote: > From: Benjamin Tissoires > > If the device has been registered but is not populated, we should not > process any incoming interrupt. > Make sure the pointers we are following are valid. Why are the interrupts enabled when device is not ready? > > Signed-off-by: Benjamin Tissoires > Tested-by: Andrew Duggan > --- > drivers/input/rmi4/rmi_driver.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c > index 2fdc7e8..fe5f2f9 100644 > --- a/drivers/input/rmi4/rmi_driver.c > +++ b/drivers/input/rmi4/rmi_driver.c > @@ -279,6 +279,9 @@ int rmi_process_interrupt_requests(struct rmi_device *rmi_dev) > struct rmi_function *entry; > int error; > > + if (!data || !data->f01_container || !data->irq_status) > + return 0; > + > error = rmi_read_block(rmi_dev, > data->f01_container->fd.data_base_addr + 1, > data->irq_status, data->num_of_irq_regs); > -- > 2.1.4 > -- Dmitry