Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752067AbbKJJMC (ORCPT ); Tue, 10 Nov 2015 04:12:02 -0500 Received: from mail-wm0-f43.google.com ([74.125.82.43]:34298 "EHLO mail-wm0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751636AbbKJJLm (ORCPT ); Tue, 10 Nov 2015 04:11:42 -0500 MIME-Version: 1.0 In-Reply-To: <20151109231610.GF9155@dtor-ws> References: <1446766645-30350-1-git-send-email-aduggan@synaptics.com> <20151109231610.GF9155@dtor-ws> Date: Tue, 10 Nov 2015 10:11:41 +0100 Message-ID: Subject: Re: [PATCH 04/26] Input: synaptics-rmi4 - prevent oopses when irq arrives while the device is not bound From: Benjamin Tissoires To: Dmitry Torokhov Cc: Andrew Duggan , linux-input , "linux-kernel@vger.kernel.org" , Benjamin Tissoires , Linus Walleij , Christopher Heiny , Stephen Chandler Paul Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1741 Lines: 51 On Tue, Nov 10, 2015 at 12:16 AM, Dmitry Torokhov wrote: > 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? Hmm... Yes, maybe this should have been tackled at the smbus level. Sorting this out might also help in the various suspend/resume bugs we are experiencing. Cheers, Benjamin > >> >> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/